/*
 * libdasm -- simple x86 disassembly library
 * (c) 2004 - 2006  jt / nologin.org
 *
 * opcode_tables.h:
 * Opcode tables for FPU, 1, 2 and 3-byte opcodes and
 * extensions.
 *
 */

#include "libdasm.h"


// lock/rep prefix name table
const char *rep_table[] = {
	 "lock ", "repne ", "rep "
};

// Register name table (also includes Jcc branch hint prefixes)
const char *reg_table[11][8] = {
	{ "eax",  "ecx",  "edx",  "ebx",  "esp",  "ebp",  "esi",  "edi"  },
	{ "ax",   "cx",   "dx",   "bx",   "sp",   "bp",   "si",   "di"   },
	{ "al",   "cl",   "dl",   "bl",   "ah",   "ch",   "dh",   "bh"   },
	{ "es",   "cs",   "ss",   "ds",   "fs",   "gs",   "??",   "??"   },
	{ "dr0",  "dr1",  "dr2",  "dr3",  "dr4",  "dr5",  "dr6",  "dr7"  },
	{ "cr0",  "cr1",  "cr2",  "cr3",  "cr4",  "cr5",  "cr6",  "cr7"  },
	{ "tr0",  "tr1",  "tr2",  "tr3",  "tr4",  "tr5",  "tr6",  "tr7"  },
	{ "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6", "xmm7" },
	{ "mm0",  "mm1",  "mm2",  "mm3",  "mm4",  "mm5",  "mm6",  "mm7"  },
	{ "st(0)","st(1)","st(2)","st(3)","st(4)","st(5)","st(6)","st(7)"},
	{ "??",   "(bnt)","??",   "(bt)", "??",   "??",   "??",   "??"   },
};

// Name table index
#define REG_GEN_DWORD 0
#define REG_GEN_WORD  1
#define REG_GEN_BYTE  2
#define REG_SEGMENT   3
#define REG_DEBUG     4
#define REG_CONTROL   5
#define REG_TEST      6
#define REG_XMM       7 
#define REG_MMX       8 
#define REG_FPU       9
#define REG_BRANCH    10	// Not registers strictly speaking..

// 1-byte opcodes
INST inst_table1[256] = {
/*00*/{ INSTRUCTION_TYPE_ADD,    "add",       AM_E|OT_b|P_w,               AM_G|OT_b|P_r,             FLAGS_NONE,   1, EFL_MATH, 0, 0, 0 },
/*01*/{ INSTRUCTION_TYPE_ADD,    "add",       AM_E|OT_v|P_w,               AM_G|OT_v|P_r,             FLAGS_NONE,   1, EFL_MATH, 0, 0, 0 },
/*02*/{ INSTRUCTION_TYPE_ADD,    "add",       AM_G|OT_b|P_w,               AM_E|OT_b|P_r,             FLAGS_NONE,   1, EFL_MATH, 0, 0, 0 },
/*03*/{ INSTRUCTION_TYPE_ADD,    "add",       AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1, EFL_MATH, 0, 0, 0 },
/*04*/{ INSTRUCTION_TYPE_ADD,    "add",       AM_REG|REG_EAX|OT_b|P_w,     AM_I|OT_b|P_r,             FLAGS_NONE,   0, EFL_MATH, 0, 0, 0 },
/*05*/{ INSTRUCTION_TYPE_ADD,    "add",       AM_REG|REG_EAX|OT_v|P_w,     AM_I|OT_v|P_r,             FLAGS_NONE,   0, EFL_MATH, 0, 0, 0 },
/*06*/{ INSTRUCTION_TYPE_PUSH,   "push",      AM_REG|REG_ES|F_r|P_r,       FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ESP },
/*07*/{ INSTRUCTION_TYPE_POP,    "pop",       AM_REG|REG_ES|F_r|P_w,       FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ESP },
/*08*/{ INSTRUCTION_TYPE_OR,     "or",        AM_E|OT_b|P_w,               AM_G|OT_b|P_r,             FLAGS_NONE,   1, EFL_BITWISE, 0, 0, 0 },
/*09*/{ INSTRUCTION_TYPE_OR,     "or",        AM_E|OT_v|P_w,               AM_G|OT_v|P_r,             FLAGS_NONE,   1, EFL_BITWISE, 0, 0, 0 },
/*0A*/{ INSTRUCTION_TYPE_OR,     "or",        AM_G|OT_b|P_w,               AM_E|OT_b|P_r,             FLAGS_NONE,   1, EFL_BITWISE, 0, 0, 0 },
/*0B*/{ INSTRUCTION_TYPE_OR,     "or",        AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1, EFL_BITWISE, 0, 0, 0 },
/*0C*/{ INSTRUCTION_TYPE_OR,     "or",        AM_REG|REG_EAX|OT_b|P_w,     AM_I|OT_b|P_r,             FLAGS_NONE,   0, EFL_BITWISE, 0, 0, 0 },
/*0D*/{ INSTRUCTION_TYPE_OR,     "or",        AM_REG|REG_EAX|OT_v|P_w,     AM_I|OT_v|P_r,             FLAGS_NONE,   0, EFL_BITWISE, 0, 0, 0 },
/*0E*/{ INSTRUCTION_TYPE_PUSH,   "push",      AM_REG|REG_CS|F_r|P_r,       FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ESP },
	// Escape to 2-byte opcode table
/*0F*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*10*/{ INSTRUCTION_TYPE_ADC,    "adc",       AM_E|OT_b|P_w,               AM_G|OT_b|P_r,             FLAGS_NONE,   1, EFL_MATH, EFL_CF, 0, 0 },
/*11*/{ INSTRUCTION_TYPE_ADC,    "adc",       AM_E|OT_v|P_w,               AM_G|OT_v|P_r,             FLAGS_NONE,   1, EFL_MATH, EFL_CF, 0, 0 },
/*12*/{ INSTRUCTION_TYPE_ADC,    "adc",       AM_G|OT_b|P_w,               AM_E|OT_b|P_r,             FLAGS_NONE,   1, EFL_MATH, EFL_CF, 0, 0 },
/*13*/{ INSTRUCTION_TYPE_ADC,    "adc",       AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1, EFL_MATH, EFL_CF, 0, 0 },
/*14*/{ INSTRUCTION_TYPE_ADC,    "adc",       AM_REG|REG_EAX|OT_b|P_w,     AM_I|OT_b|P_r,             FLAGS_NONE,   0, EFL_MATH, EFL_CF, 0, 0 },
/*15*/{ INSTRUCTION_TYPE_ADC,    "adc",       AM_REG|REG_EAX|OT_v|P_w,     AM_I|OT_v|P_r,             FLAGS_NONE,   0, EFL_MATH, EFL_CF, 0, 0 },
/*16*/{ INSTRUCTION_TYPE_PUSH,   "push",      AM_REG|REG_SS|F_r|P_r,       FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ESP },
/*17*/{ INSTRUCTION_TYPE_POP,    "pop",       AM_REG|REG_SS|F_r|P_w,       FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ESP },
/*18*/{ INSTRUCTION_TYPE_SBB,    "sbb",       AM_E|OT_b|P_w,               AM_G|OT_b|P_r,             FLAGS_NONE,   1, EFL_MATH, EFL_CF, 0, 0 },
/*19*/{ INSTRUCTION_TYPE_SBB,    "sbb",       AM_E|OT_v|P_w,               AM_G|OT_v|P_r,             FLAGS_NONE,   1, EFL_MATH, EFL_CF, 0, 0 },
/*1A*/{ INSTRUCTION_TYPE_SBB,    "sbb",       AM_G|OT_b|P_w,               AM_E|OT_b|P_r,             FLAGS_NONE,   1, EFL_MATH, EFL_CF, 0, 0 },
/*1B*/{ INSTRUCTION_TYPE_SBB,    "sbb",       AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1, EFL_MATH, EFL_CF, 0, 0 },
/*1C*/{ INSTRUCTION_TYPE_SBB,    "sbb",       AM_REG|REG_EAX|OT_b|P_w,     AM_I|OT_b|P_r,             FLAGS_NONE,   0, EFL_MATH, EFL_CF, 0, 0 },
/*1D*/{ INSTRUCTION_TYPE_SBB,    "sbb",       AM_REG|REG_EAX|OT_v|P_w,     AM_I|OT_v|P_r,             FLAGS_NONE,   0, EFL_MATH, EFL_CF, 0, 0 },
/*1E*/{ INSTRUCTION_TYPE_PUSH,   "push",      AM_REG|REG_DS|F_r|P_r,       FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ESP },
/*1F*/{ INSTRUCTION_TYPE_POP,    "pop",       AM_REG|REG_DS|F_r|P_w,       FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ESP },
/*20*/{ INSTRUCTION_TYPE_AND,    "and",       AM_E|OT_b|P_w,               AM_G|OT_b|P_r,             FLAGS_NONE,   1, EFL_BITWISE, 0, 0, 0 },
/*21*/{ INSTRUCTION_TYPE_AND,    "and",       AM_E|OT_v|P_w,               AM_G|OT_v|P_r,             FLAGS_NONE,   1, EFL_BITWISE, 0, 0, 0 },
/*22*/{ INSTRUCTION_TYPE_AND,    "and",       AM_G|OT_b|P_w,               AM_E|OT_b|P_r,             FLAGS_NONE,   1, EFL_BITWISE, 0, 0, 0 },
/*23*/{ INSTRUCTION_TYPE_AND,    "and",       AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1, EFL_BITWISE, 0, 0, 0 },
/*24*/{ INSTRUCTION_TYPE_AND,    "and",       AM_REG|REG_EAX|OT_b|P_w,     AM_I|OT_b|P_r,             FLAGS_NONE,   0, EFL_BITWISE, 0, 0, 0 },
/*25*/{ INSTRUCTION_TYPE_AND,    "and",       AM_REG|REG_EAX|OT_v|P_w,     AM_I|OT_v|P_r,             FLAGS_NONE,   0, EFL_BITWISE, 0, 0, 0 },
	// seg ES override
/*26*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*27*/{ INSTRUCTION_TYPE_DCL,    "daa",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, EFL_CF|EFL_AF|EFL_SF|EFL_ZF|EFL_PF, EFL_CF, IOP_EAX, IOP_EAX },
/*28*/{ INSTRUCTION_TYPE_SUB,    "sub",       AM_E|OT_b|P_w,               AM_G|OT_b|P_r,             FLAGS_NONE,   1, EFL_MATH, 0, 0, 0 },
/*29*/{ INSTRUCTION_TYPE_SUB,    "sub",       AM_E|OT_v|P_w,               AM_G|OT_v|P_r,             FLAGS_NONE,   1, EFL_MATH, 0, 0, 0 },
/*2A*/{ INSTRUCTION_TYPE_SUB,    "sub",       AM_G|OT_b|P_w,               AM_E|OT_b|P_r,             FLAGS_NONE,   1, EFL_MATH, 0, 0, 0 },
/*2B*/{ INSTRUCTION_TYPE_SUB,    "sub",       AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1, EFL_MATH, 0, 0, 0 },
/*2C*/{ INSTRUCTION_TYPE_SUB,    "sub",       AM_REG|REG_EAX|OT_b|P_w,     AM_I|OT_b|P_r,             FLAGS_NONE,   0, EFL_MATH, 0, 0, 0 },
/*2D*/{ INSTRUCTION_TYPE_SUB,    "sub",       AM_REG|REG_EAX|OT_v|P_w,     AM_I|OT_v|P_r,             FLAGS_NONE,   0, EFL_MATH, 0, 0, 0 },
	// seg CS override
/*2E*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*2F*/{ INSTRUCTION_TYPE_DCL,    "das",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, EFL_CF|EFL_AF|EFL_SF|EFL_ZF|EFL_PF, EFL_CF, IOP_EAX, IOP_EAX },
/*30*/{ INSTRUCTION_TYPE_XOR,    "xor",       AM_E|OT_b|P_w,               AM_G|OT_b|P_r,             FLAGS_NONE,   1, EFL_BITWISE, 0, 0, 0 },
/*31*/{ INSTRUCTION_TYPE_XOR,    "xor",       AM_E|OT_v|P_w,               AM_G|OT_v|P_r,             FLAGS_NONE,   1, EFL_BITWISE, 0, 0, 0 },
/*32*/{ INSTRUCTION_TYPE_XOR,    "xor",       AM_G|OT_b|P_w,               AM_E|OT_b|P_r,             FLAGS_NONE,   1, EFL_BITWISE, 0, 0, 0 },
/*33*/{ INSTRUCTION_TYPE_XOR,    "xor",       AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1, EFL_BITWISE, 0, 0, 0 },
/*34*/{ INSTRUCTION_TYPE_XOR,    "xor",       AM_REG|REG_EAX|OT_b|P_w,     AM_I|OT_b|P_r,             FLAGS_NONE,   0, EFL_BITWISE, 0, 0, 0 },
/*35*/{ INSTRUCTION_TYPE_XOR,    "xor",       AM_REG|REG_EAX|OT_v|P_w,     AM_I|OT_v|P_r,             FLAGS_NONE,   0, EFL_BITWISE, 0, 0, 0 },
	// seg SS override
/*36*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*37*/{ INSTRUCTION_TYPE_ASC,    "aaa",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, EFL_AF|EFL_CF, 0, IOP_EAX, IOP_EAX },
/*38*/{ INSTRUCTION_TYPE_CMP,    "cmp",       AM_E|OT_b|P_r,               AM_G|OT_b|P_r,             FLAGS_NONE,   1, EFL_ALL_COMMON, 0, 0, 0 },
/*39*/{ INSTRUCTION_TYPE_CMP,    "cmp",       AM_E|OT_v|P_r,               AM_G|OT_v|P_r,             FLAGS_NONE,   1, EFL_ALL_COMMON, 0, 0, 0 },
/*3A*/{ INSTRUCTION_TYPE_CMP,    "cmp",       AM_G|OT_b|P_r,               AM_E|OT_b|P_r,             FLAGS_NONE,   1, EFL_ALL_COMMON, 0, 0, 0 },
/*3B*/{ INSTRUCTION_TYPE_CMP,    "cmp",       AM_G|OT_v|P_r,               AM_E|OT_v|P_r,             FLAGS_NONE,   1, EFL_ALL_COMMON, 0, 0, 0 },
/*3C*/{ INSTRUCTION_TYPE_CMP,    "cmp",       AM_REG|REG_EAX|OT_b|P_r,     AM_I|OT_b|P_r,             FLAGS_NONE,   0, EFL_ALL_COMMON, 0, 0, 0 },
/*3D*/{ INSTRUCTION_TYPE_CMP,    "cmp",       AM_REG|REG_EAX|OT_v|P_r,     AM_I|OT_v|P_r,             FLAGS_NONE,   0, EFL_ALL_COMMON, 0, 0, 0 },
	// seg DS override
/*3E*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*3F*/{ INSTRUCTION_TYPE_ASC,    "aas",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, EFL_AF|EFL_CF, 0, IOP_EAX, IOP_EAX },
/*40*/{ INSTRUCTION_TYPE_INC,    "inc",       AM_REG|REG_EAX|OT_v|P_r,     FLAGS_NONE,                FLAGS_NONE,   0, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
/*41*/{ INSTRUCTION_TYPE_INC,    "inc",       AM_REG|REG_ECX|OT_v|P_r,     FLAGS_NONE,                FLAGS_NONE,   0, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
/*42*/{ INSTRUCTION_TYPE_INC,    "inc",       AM_REG|REG_EDX|OT_v|P_r,     FLAGS_NONE,                FLAGS_NONE,   0, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
/*43*/{ INSTRUCTION_TYPE_INC,    "inc",       AM_REG|REG_EBX|OT_v|P_r,     FLAGS_NONE,                FLAGS_NONE,   0, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
/*44*/{ INSTRUCTION_TYPE_INC,    "inc",       AM_REG|REG_ESP|OT_v|P_r,     FLAGS_NONE,                FLAGS_NONE,   0, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
/*45*/{ INSTRUCTION_TYPE_INC,    "inc",       AM_REG|REG_EBP|OT_v|P_r,     FLAGS_NONE,                FLAGS_NONE,   0, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
/*46*/{ INSTRUCTION_TYPE_INC,    "inc",       AM_REG|REG_ESI|OT_v|P_r,     FLAGS_NONE,                FLAGS_NONE,   0, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
/*47*/{ INSTRUCTION_TYPE_INC,    "inc",       AM_REG|REG_EDI|OT_v|P_r,     FLAGS_NONE,                FLAGS_NONE,   0, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
/*48*/{ INSTRUCTION_TYPE_DEC,    "dec",       AM_REG|REG_EAX|OT_v,         FLAGS_NONE,                FLAGS_NONE,   0, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
/*49*/{ INSTRUCTION_TYPE_DEC,    "dec",       AM_REG|REG_ECX|OT_v,         FLAGS_NONE,                FLAGS_NONE,   0, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
/*4A*/{ INSTRUCTION_TYPE_DEC,    "dec",       AM_REG|REG_EDX|OT_v,         FLAGS_NONE,                FLAGS_NONE,   0, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
/*4B*/{ INSTRUCTION_TYPE_DEC,    "dec",       AM_REG|REG_EBX|OT_v,         FLAGS_NONE,                FLAGS_NONE,   0, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
/*4C*/{ INSTRUCTION_TYPE_DEC,    "dec",       AM_REG|REG_ESP|OT_v,         FLAGS_NONE,                FLAGS_NONE,   0, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
/*4D*/{ INSTRUCTION_TYPE_DEC,    "dec",       AM_REG|REG_EBP|OT_v,         FLAGS_NONE,                FLAGS_NONE,   0, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
/*4E*/{ INSTRUCTION_TYPE_DEC,    "dec",       AM_REG|REG_ESI|OT_v,         FLAGS_NONE,                FLAGS_NONE,   0, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
/*4F*/{ INSTRUCTION_TYPE_DEC,    "dec",       AM_REG|REG_EDI|OT_v,         FLAGS_NONE,                FLAGS_NONE,   0, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
/*50*/{ INSTRUCTION_TYPE_PUSH,   "push",      AM_REG|REG_EAX|OT_v|P_r,     FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ESP },
/*51*/{ INSTRUCTION_TYPE_PUSH,   "push",      AM_REG|REG_ECX|OT_v|P_r,     FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ESP },
/*52*/{ INSTRUCTION_TYPE_PUSH,   "push",      AM_REG|REG_EDX|OT_v|P_r,     FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ESP },
/*53*/{ INSTRUCTION_TYPE_PUSH,   "push",      AM_REG|REG_EBX|OT_v|P_r,     FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ESP },
/*54*/{ INSTRUCTION_TYPE_PUSH,   "push",      AM_REG|REG_ESP|OT_v|P_r,     FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ESP },
/*55*/{ INSTRUCTION_TYPE_PUSH,   "push",      AM_REG|REG_EBP|OT_v|P_r,     FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ESP },
/*56*/{ INSTRUCTION_TYPE_PUSH,   "push",      AM_REG|REG_ESI|OT_v|P_r,     FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ESP },
/*57*/{ INSTRUCTION_TYPE_PUSH,   "push",      AM_REG|REG_EDI|OT_v|P_r,     FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ESP },
/*58*/{ INSTRUCTION_TYPE_POP,    "pop",       AM_REG|REG_EAX|OT_v|P_w,     FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ESP },
/*59*/{ INSTRUCTION_TYPE_POP,    "pop",       AM_REG|REG_ECX|OT_v|P_w,     FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ESP },
/*5A*/{ INSTRUCTION_TYPE_POP,    "pop",       AM_REG|REG_EDX|OT_v|P_w,     FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ESP },
/*5B*/{ INSTRUCTION_TYPE_POP,    "pop",       AM_REG|REG_EBX|OT_v|P_w,     FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ESP },
/*5C*/{ INSTRUCTION_TYPE_POP,    "pop",       AM_REG|REG_ESP|OT_v|P_w,     FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ESP },
/*5D*/{ INSTRUCTION_TYPE_POP,    "pop",       AM_REG|REG_EBP|OT_v|P_w,     FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ESP },
/*5E*/{ INSTRUCTION_TYPE_POP,    "pop",       AM_REG|REG_ESI|OT_v|P_w,     FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ESP },
/*5F*/{ INSTRUCTION_TYPE_POP,    "pop",       AM_REG|REG_EDI|OT_v|P_w,     FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ESP },
/*60*/{ INSTRUCTION_TYPE_PUSH ,  "pusha",     FLAGS_NONE|P_r,              FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ALL },
/*61*/{ INSTRUCTION_TYPE_POP,    "popa",      FLAGS_NONE|P_w,              FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ALL, IOP_ESP },
/*62*/{ INSTRUCTION_TYPE_OTHER,  "bound",     AM_G|OT_v|P_r,               AM_M|OT_v|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*63*/{ INSTRUCTION_TYPE_PRIV,   "arpl",      AM_E|OT_w|P_r,               AM_G|OT_w|P_r,             FLAGS_NONE,   1, EFL_ZF, 0, 0, 0 },
	// seg FS override
/*64*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	// seg GS override
/*65*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	// operand size override
/*66*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	// address size override
/*67*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*68*/{ INSTRUCTION_TYPE_PUSH,   "push",      AM_I|OT_v|P_r,               FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ESP },
/*69*/{ INSTRUCTION_TYPE_EIMUL,  "imul",      AM_G|OT_v|P_r,               AM_E|OT_v|P_r,             AM_I|OT_v|P_r,1, EFL_CF|EFL_OF, 0, 0, 0 },
/*6A*/{ INSTRUCTION_TYPE_PUSH,   "push",      AM_I|OT_b|F_s|P_r,           FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ESP },
/*6B*/{ INSTRUCTION_TYPE_EIMUL,  "imul",      AM_G|OT_v|P_r,               AM_E|OT_v|P_r,         AM_I|OT_b|F_s|P_r,1, EFL_CF|EFL_OF, 0, 0, 0 },
/*6C*/{ INSTRUCTION_TYPE_PRIV,   "insb",      FLAGS_NONE|P_w,              FLAGS_NONE|P_r,            FLAGS_NONE,   0, 0, 0, IOP_EDI, IOP_EDX|IOP_EDI },
/*6D*/{ INSTRUCTION_TYPE_PRIV,   "insv",      FLAGS_NONE|P_w,              FLAGS_NONE|P_r,            FLAGS_NONE,   0, 0, 0, IOP_EDI, IOP_EDX|IOP_EDI },
/*6E*/{ INSTRUCTION_TYPE_PRIV,   "outsb",     FLAGS_NONE|P_w,              FLAGS_NONE|P_r,            FLAGS_NONE,   0, 0, 0, IOP_ESI, IOP_EDX|IOP_ESI },
/*6F*/{ INSTRUCTION_TYPE_PRIV,   "outsv",     FLAGS_NONE|P_w,              FLAGS_NONE|P_r,            FLAGS_NONE,   0, 0, 0, IOP_ESI, IOP_EDX|IOP_ESI },
/*70*/{ INSTRUCTION_TYPE_JMPC,   "jo",        AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_OF, 0, 0 },
/*71*/{ INSTRUCTION_TYPE_JMPC,   "jno",       AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_OF, 0, 0 },
/*72*/{ INSTRUCTION_TYPE_JMPC,   "jc",        AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_CF, 0, 0 },
/*73*/{ INSTRUCTION_TYPE_JMPC,   "jnc",       AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_CF, 0, 0 },
/*74*/{ INSTRUCTION_TYPE_JMPC,   "jz",        AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_ZF, 0, 0 },
/*75*/{ INSTRUCTION_TYPE_JMPC,   "jnz",       AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_ZF, 0, 0 },
/*76*/{ INSTRUCTION_TYPE_JMPC,   "jna",       AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_ZF|EFL_CF, 0, 0 },
/*77*/{ INSTRUCTION_TYPE_JMPC,   "ja",        AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_ZF|EFL_CF, 0, 0 },
/*78*/{ INSTRUCTION_TYPE_JMPC,   "js",        AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_SF, 0, 0 },
/*79*/{ INSTRUCTION_TYPE_JMPC,   "jns",       AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_SF, 0, 0 },
/*7A*/{ INSTRUCTION_TYPE_JMPC,   "jp",        AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_PF, 0, 0 },
/*7B*/{ INSTRUCTION_TYPE_JMPC,   "jpo",       AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_PF, 0, 0 },
/*7C*/{ INSTRUCTION_TYPE_JMPC,   "jl",        AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_SF|EFL_OF, 0, 0 },
/*7D*/{ INSTRUCTION_TYPE_JMPC,   "jnl",       AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_SF|EFL_OF, 0, 0 },
/*7E*/{ INSTRUCTION_TYPE_JMPC,   "jng",       AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_SF|EFL_OF|EFL_ZF, 0, 0 },
/*7F*/{ INSTRUCTION_TYPE_JMPC,   "jg",        AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_SF|EFL_OF|EFL_ZF, 0, 0 },
/*80*/{ INSTRUCTION_TYPE_OTHER,  "g1",        AM_E|OT_b,                   AM_I|OT_b,                 FLAGS_NONE,   1, 0, 0, 0, 0 },
/*81*/{ INSTRUCTION_TYPE_OTHER,  "g1",        AM_E|OT_v,                   AM_I|OT_v,                 FLAGS_NONE,   1, 0, 0, 0, 0 },
/*82*/{ INSTRUCTION_TYPE_OTHER,  "g1",        AM_E|OT_b,                   AM_I|OT_b,                 FLAGS_NONE,   1, 0, 0, 0, 0 },
/*83*/{ INSTRUCTION_TYPE_OTHER,  "g1",        AM_E|OT_v,                   AM_I|OT_b|F_s,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*84*/{ INSTRUCTION_TYPE_TEST,   "test",      AM_E|OT_b|P_r,               AM_G|OT_b|P_r,             FLAGS_NONE,   1, EFL_OF|EFL_CF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
/*85*/{ INSTRUCTION_TYPE_TEST,   "test",      AM_E|OT_v|P_r,               AM_G|OT_v|P_r,             FLAGS_NONE,   1, EFL_OF|EFL_CF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
/*86*/{ INSTRUCTION_TYPE_XCHG,   "xchg",      AM_E|OT_b|P_w,               AM_G|OT_b|P_w,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*87*/{ INSTRUCTION_TYPE_XCHG,   "xchg",      AM_E|OT_v|P_w,               AM_G|OT_v|P_w,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*88*/{ INSTRUCTION_TYPE_MOV,    "mov",       AM_E|OT_b|P_w,               AM_G|OT_b|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*89*/{ INSTRUCTION_TYPE_MOV,    "mov",       AM_E|OT_v|P_w,               AM_G|OT_v|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*8A*/{ INSTRUCTION_TYPE_MOV,    "mov",       AM_G|OT_b|P_w,               AM_E|OT_b|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*8B*/{ INSTRUCTION_TYPE_MOV,    "mov",       AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*8C*/{ INSTRUCTION_TYPE_MOVSR,  "mov",       AM_E|OT_v|P_w,               AM_S|OT_w|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*8D*/{ INSTRUCTION_TYPE_LEA,    "lea",       AM_G|OT_v|P_w,               AM_M|OT_v|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*8E*/{ INSTRUCTION_TYPE_MOVSR,  "mov",       AM_S|OT_w|P_w,               AM_E|OT_w|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*8F*/{ INSTRUCTION_TYPE_POP,    "pop",       AM_E|OT_v|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, IOP_ESP, IOP_ESP },
/*90*/{ INSTRUCTION_TYPE_OTHER,  "nop",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*91*/{ INSTRUCTION_TYPE_XCHG,   "xchg",      AM_REG|REG_EAX|OT_v|P_w,     AM_REG|REG_ECX|OT_v|P_w,   FLAGS_NONE,   0, 0, 0, 0, 0 },
/*92*/{ INSTRUCTION_TYPE_XCHG,   "xchg",      AM_REG|REG_EAX|OT_v|P_w,     AM_REG|REG_EDX|OT_v|P_w,   FLAGS_NONE,   0, 0, 0, 0, 0 },
/*93*/{ INSTRUCTION_TYPE_XCHG,   "xchg",      AM_REG|REG_EAX|OT_v|P_w,     AM_REG|REG_EBX|OT_v|P_w,   FLAGS_NONE,   0, 0, 0, 0, 0 },
/*94*/{ INSTRUCTION_TYPE_XCHG,   "xchg",      AM_REG|REG_EAX|OT_v|P_w,     AM_REG|REG_ESP|OT_v|P_w,   FLAGS_NONE,   0, 0, 0, 0, 0 },
/*95*/{ INSTRUCTION_TYPE_XCHG,   "xchg",      AM_REG|REG_EAX|OT_v|P_w,     AM_REG|REG_EBP|OT_v|P_w,   FLAGS_NONE,   0, 0, 0, 0, 0 },
/*96*/{ INSTRUCTION_TYPE_XCHG,   "xchg",      AM_REG|REG_EAX|OT_v|P_w,     AM_REG|REG_ESI|OT_v|P_w,   FLAGS_NONE,   0, 0, 0, 0, 0 },
/*97*/{ INSTRUCTION_TYPE_XCHG,   "xchg",      AM_REG|REG_EAX|OT_v|P_w,     AM_REG|REG_EDI|OT_v|P_w,   FLAGS_NONE,   0, 0, 0, 0, 0 },
/*98*/{ INSTRUCTION_TYPE_OTHER,  "cbw",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, REG_EAX, IOP_EAX },
/*99*/{ INSTRUCTION_TYPE_OTHER,  "cwd",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, REG_EAX|REG_EDX, IOP_EAX },
/*9A*/{ INSTRUCTION_TYPE_CALL,   "callf",     AM_A|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, 0 },
/*9B*/{ INSTRUCTION_TYPE_FPU_CTRL,"wait",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*9C*/{ INSTRUCTION_TYPE_PUSH,   "pushf",     FLAGS_NONE|P_r,              FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ESP },
/*9D*/{ INSTRUCTION_TYPE_POP,    "popf",      FLAGS_NONE|P_w,              FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ESP },
/*9E*/{ INSTRUCTION_TYPE_OTHER,  "sahf",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, EFL_SF|EFL_ZF|EFL_AF|EFL_PF|EFL_CF, 0, IOP_EAX },
/*9F*/{ INSTRUCTION_TYPE_OTHER,  "lahf",      FLAGS_NONE|P_w,              FLAGS_NONE|P_r,            FLAGS_NONE,   0, 0, 0, IOP_EAX, 0 },
/*A0*/{ INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_EAX|OT_b|P_w,     AM_O|OT_v|P_r,             FLAGS_NONE,   0, 0, 0, 0, 0 },
/*A1*/{ INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_EAX|OT_v|P_w,     AM_O|OT_v|P_r,             FLAGS_NONE,   0, 0, 0, 0, 0 },
/*A2*/{ INSTRUCTION_TYPE_MOV,    "mov",       AM_O|OT_v|P_w,               AM_REG|REG_EAX|OT_b|P_r,   FLAGS_NONE,   0, 0, 0, 0, 0 },
/*A3*/{ INSTRUCTION_TYPE_MOV,    "mov",       AM_O|OT_v|P_w,               AM_REG|REG_EAX|OT_v|P_r,   FLAGS_NONE,   0, 0, 0, 0, 0 },
/*A4*/{ INSTRUCTION_TYPE_MOVS,   "movsb",     FLAGS_NONE|P_w,              FLAGS_NONE|P_r,            FLAGS_NONE,   0, 0, EFL_DF, IOP_EDI|IOP_ESI, IOP_EDI|IOP_ESI },
/*A5*/{ INSTRUCTION_TYPE_MOVS,   "movsd",     FLAGS_NONE|P_w,              FLAGS_NONE|P_r,            FLAGS_NONE,   0, 0, EFL_DF, IOP_EDI|IOP_ESI, IOP_EDI|IOP_ESI },
/*A6*/{ INSTRUCTION_TYPE_CMPS,   "cmpsb",     FLAGS_NONE|P_r,              FLAGS_NONE|P_r,            FLAGS_NONE,   0, EFL_ALL_COMMON, EFL_DF, IOP_EDI|IOP_ESI, IOP_EDI|IOP_ESI },
/*A7*/{ INSTRUCTION_TYPE_CMPS,   "cmpsd",     FLAGS_NONE|P_r,              FLAGS_NONE|P_r,            FLAGS_NONE,   0, EFL_ALL_COMMON, EFL_DF, IOP_EDI|IOP_ESI, IOP_EDI|IOP_ESI },
/*A8*/{ INSTRUCTION_TYPE_TEST,   "test",      AM_REG|REG_EAX|OT_b|P_r,     AM_I|OT_b|P_r,             FLAGS_NONE,   0, EFL_OF|EFL_CF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
/*A9*/{ INSTRUCTION_TYPE_TEST,   "test",      AM_REG|REG_EAX|OT_v|P_r,     AM_I|OT_v|P_r,             FLAGS_NONE,   0, EFL_OF|EFL_CF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
/*AA*/{ INSTRUCTION_TYPE_STOS,   "stosb",     FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_DF, IOP_EDI, IOP_EAX|IOP_EDI },
/*AB*/{ INSTRUCTION_TYPE_STOS,   "stosd",     FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_DF, IOP_EDI, IOP_EAX|IOP_EDI },
/*AC*/{ INSTRUCTION_TYPE_LODS,   "lodsb",     FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_DF, IOP_EAX|IOP_ESI, IOP_ESI },
/*AD*/{ INSTRUCTION_TYPE_LODS,   "lodsd",     FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_DF, IOP_EAX|IOP_ESI, IOP_ESI },
/*AE*/{ INSTRUCTION_TYPE_SCAS,   "scasb",     FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, EFL_ALL_COMMON, EFL_DF, IOP_EDI, IOP_EAX|IOP_EDI },
/*AF*/{ INSTRUCTION_TYPE_SCAS,   "scasd",     FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, EFL_ALL_COMMON, EFL_DF, IOP_EDI, IOP_EAX|IOP_EDI },
/*B0*/{ INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_AL|OT_b|P_w,      AM_I|OT_b|P_r,             FLAGS_NONE,   0, 0, 0, 0, 0 },
/*B1*/{ INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_CL|OT_b|P_w,      AM_I|OT_b|P_r,             FLAGS_NONE,   0, 0, 0, 0, 0 },
/*B2*/{ INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_DL|OT_b|P_w,      AM_I|OT_b|P_r,             FLAGS_NONE,   0, 0, 0, 0, 0 },
/*B3*/{ INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_BL|OT_b|P_w,      AM_I|OT_b|P_r,             FLAGS_NONE,   0, 0, 0, 0, 0 },
/*B4*/{ INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_AH|OT_b|P_w,      AM_I|OT_b|P_r,             FLAGS_NONE,   0, 0, 0, 0, 0 },
/*B5*/{ INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_CH|OT_b|P_w,      AM_I|OT_b|P_r,             FLAGS_NONE,   0, 0, 0, 0, 0 },
/*B6*/{ INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_DH|OT_b|P_w,      AM_I|OT_b|P_r,             FLAGS_NONE,   0, 0, 0, 0, 0 },
/*B7*/{ INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_BH|OT_b|P_w,      AM_I|OT_b|P_r,             FLAGS_NONE,   0, 0, 0, 0, 0 },
/*B8*/{ INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_EAX|OT_v|P_w,     AM_I|OT_v|P_r,             FLAGS_NONE,   0, 0, 0, 0, 0 },
/*B9*/{ INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_ECX|OT_v|P_w,     AM_I|OT_v|P_r,             FLAGS_NONE,   0, 0, 0, 0, 0 },
/*BA*/{ INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_EDX|OT_v|P_w,     AM_I|OT_v|P_r,             FLAGS_NONE,   0, 0, 0, 0, 0 },
/*BB*/{ INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_EBX|OT_v|P_w,     AM_I|OT_v|P_r,             FLAGS_NONE,   0, 0, 0, 0, 0 },
/*BC*/{ INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_ESP|OT_v|P_w,     AM_I|OT_v|P_r,             FLAGS_NONE,   0, 0, 0, 0, 0 },
/*BD*/{ INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_EBP|OT_v|P_w,     AM_I|OT_v|P_r,             FLAGS_NONE,   0, 0, 0, 0, 0 },
/*BE*/{ INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_ESI|OT_v|P_w,     AM_I|OT_v|P_r,             FLAGS_NONE,   0, 0, 0, 0, 0 },
/*BF*/{ INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_EDI|OT_v|P_w,     AM_I|OT_v|P_r,             FLAGS_NONE,   0, 0, 0, 0, 0 },
/*C0*/{ INSTRUCTION_TYPE_OTHER,  "g2",        AM_E|OT_b,                   AM_I|OT_b,                 FLAGS_NONE,   1, 0, 0, 0, 0 }, 
/*C1*/{ INSTRUCTION_TYPE_OTHER,  "g2",        AM_E|OT_v,                   AM_I|OT_b,                 FLAGS_NONE,   1, 0, 0, 0, 0 },
/*C2*/{ INSTRUCTION_TYPE_RET,    "retn",      AM_I|OT_w|P_r,               FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ESP },
/*C3*/{ INSTRUCTION_TYPE_RET,    "ret",       FLAGS_NONE|P_r,              FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ESP },
/*C4*/{ INSTRUCTION_TYPE_LFP,    "les",       AM_G|OT_v|P_w,               AM_M|OT_v|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*C5*/{ INSTRUCTION_TYPE_LFP,    "lds",       AM_G|OT_v|P_w,               AM_M|OT_v|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*C6*/{ INSTRUCTION_TYPE_MOV,    "mov",       AM_E|OT_b|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*C7*/{ INSTRUCTION_TYPE_MOV,    "mov",       AM_E|OT_v|P_w,               AM_I|OT_v|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*C8*/{ INSTRUCTION_TYPE_ENTER,  "enter",     AM_I|OT_w|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   0, 0, 0, IOP_ESP|IOP_EBP, IOP_ESP|IOP_EBP },
/*C9*/{ INSTRUCTION_TYPE_POP,    "leave",     FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP|IOP_EBP, IOP_ESP|IOP_EBP },
/*CA*/{ INSTRUCTION_TYPE_RET,    "retf",      AM_I|OT_w|P_r,               FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, 0 },
/*CB*/{ INSTRUCTION_TYPE_OTHER,  "retf",      FLAGS_NONE|P_r,              FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, 0 },
/*CC*/{ INSTRUCTION_TYPE_INT,    "int3",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*CD*/{ INSTRUCTION_TYPE_INT,    "int",       AM_I|OT_b|P_r,               FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*CE*/{ INSTRUCTION_TYPE_INT,    "into",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*CF*/{ INSTRUCTION_TYPE_OTHER,  "iret",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D0*/{ INSTRUCTION_TYPE_OTHER,  "g2",        AM_E|OT_b,                   AM_I1|OT_b,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*D1*/{ INSTRUCTION_TYPE_OTHER,  "g2",        AM_E|OT_v,                   AM_I1|OT_b,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*D2*/{ INSTRUCTION_TYPE_OTHER,  "g2",        AM_E|OT_b,                   AM_REG|REG_CL|OT_b,        FLAGS_NONE,   1, 0, 0, 0, 0 },
/*D3*/{ INSTRUCTION_TYPE_OTHER,  "g2",        AM_E|OT_v,                   AM_REG|REG_CL|OT_b,        FLAGS_NONE,   1, 0, 0, 0, 0 },
/*D4*/{ INSTRUCTION_TYPE_ASC,    "aam",       AM_I|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   0, EFL_SF|EFL_ZF|EFL_PF, 0, IOP_EAX, IOP_EAX },
/*D5*/{ INSTRUCTION_TYPE_ASC,    "aad",       AM_I|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   0, EFL_SF|EFL_ZF|EFL_PF, 0, IOP_EAX, IOP_EAX },
/*D6*/{ INSTRUCTION_TYPE_OTHER,  "salc",      FLAGS_NONE|P_w,              FLAGS_NONE|P_r,            FLAGS_NONE,   0, EFL_CF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
/*D7*/{ INSTRUCTION_TYPE_XLAT,   "xlat",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_EAX, IOP_EAX|IOP_EBX },
/*D8*/{ INSTRUCTION_TYPE_OTHER,  "esc",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D9*/{ INSTRUCTION_TYPE_OTHER,  "esc",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA*/{ INSTRUCTION_TYPE_OTHER,  "esc",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB*/{ INSTRUCTION_TYPE_OTHER,  "esc",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC*/{ INSTRUCTION_TYPE_OTHER,  "esc",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD*/{ INSTRUCTION_TYPE_OTHER,  "esc",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE*/{ INSTRUCTION_TYPE_OTHER,  "esc",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DF*/{ INSTRUCTION_TYPE_OTHER,  "esc",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*E0*/{ INSTRUCTION_TYPE_LOOP,   "loopne",    AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_ZF, IOP_ECX, IOP_ECX },
/*E1*/{ INSTRUCTION_TYPE_LOOP,   "loope",     AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_ZF, IOP_ECX, IOP_ECX },
/*E2*/{ INSTRUCTION_TYPE_LOOP,   "loop",      AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ECX, IOP_ECX },
/*E3*/{ INSTRUCTION_TYPE_JECXZ,  "jecxz",     AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, IOP_ECX },
/*E4*/{ INSTRUCTION_TYPE_PRIV,   "in",        AM_REG|REG_AL|OT_b|P_w,      AM_I|OT_b|P_r,             FLAGS_NONE,   0, 0, 0, 0, 0 },
/*E5*/{ INSTRUCTION_TYPE_PRIV,   "in",        AM_REG|REG_EAX|OT_v|P_w,     AM_I|OT_b|P_r,             FLAGS_NONE,   0, 0, 0, 0, 0 },
/*E6*/{ INSTRUCTION_TYPE_PRIV,   "out",       AM_I|OT_b|P_w,               AM_REG|REG_AL|OT_b|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*E7*/{ INSTRUCTION_TYPE_PRIV,   "out",       AM_I|OT_b|P_w,               AM_REG|REG_EAX|OT_v|P_r,   FLAGS_NONE,   0, 0, 0, 0, 0 },
/*E8*/{ INSTRUCTION_TYPE_CALL,   "call",      AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*E9*/{ INSTRUCTION_TYPE_JMP,    "jmp",       AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*EA*/{ INSTRUCTION_TYPE_JMP,    "jmpf",      AM_A|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*EB*/{ INSTRUCTION_TYPE_JMP,    "jmp",       AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*EC*/{ INSTRUCTION_TYPE_PRIV,   "in",        AM_REG|REG_EAX|OT_b|P_w,     AM_REG|REG_EDX|OT_w|P_r,   FLAGS_NONE,   0, 0, 0, 0, 0 },
/*ED*/{ INSTRUCTION_TYPE_PRIV,   "in",        AM_REG|REG_EAX|OT_v|P_w,     AM_REG|REG_EDX|OT_w|P_r,   FLAGS_NONE,   0, 0, 0, 0, 0 },
/*EE*/{ INSTRUCTION_TYPE_PRIV,   "out",       AM_REG|REG_EDX|OT_w|P_w,     AM_REG|REG_EAX|OT_b|P_r,   FLAGS_NONE,   0, 0, 0, 0, 0 },
/*EF*/{ INSTRUCTION_TYPE_PRIV,   "out",       AM_REG|REG_EDX|OT_w|P_w,     AM_REG|REG_EAX|OT_v|P_r,   FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F0*/{ INSTRUCTION_TYPE_OTHER,  "ext",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F1*/{ INSTRUCTION_TYPE_OTHER,  "int1",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2*/{ INSTRUCTION_TYPE_OTHER,  "ext",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3*/{ INSTRUCTION_TYPE_OTHER,  "ext",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F4*/{ INSTRUCTION_TYPE_PRIV,   "hlt",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F5*/{ INSTRUCTION_TYPE_OTHER,  "cmc",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, EFL_CF, 0, 0, 0 },
/*F6*/{ INSTRUCTION_TYPE_OTHER,  "g3",        AM_E|OT_b,                   FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 }, 
/*F7*/{ INSTRUCTION_TYPE_OTHER,  "g3",        AM_E|OT_v,                   FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 }, 
/*F8*/{ INSTRUCTION_TYPE_OTHER,  "clc",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, EFL_CF, 0, 0, 0 },
/*F9*/{ INSTRUCTION_TYPE_OTHER,  "stc",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, EFL_CF, 0, 0, 0 },
/*FA*/{ INSTRUCTION_TYPE_OTHER,  "cli",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, EFL_IF, 0, 0, 0 },
/*FB*/{ INSTRUCTION_TYPE_OTHER,  "sti",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, EFL_IF, 0, 0, 0 },
/*FC*/{ INSTRUCTION_TYPE_CLD,    "cld",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, EFL_DF, 0, 0, 0 },
/*FD*/{ INSTRUCTION_TYPE_STD,    "std",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, EFL_DF, 0, 0, 0 },
/*FE*/{ INSTRUCTION_TYPE_OTHER,  "g4",        AM_E|OT_b,                   FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*FF*/{ INSTRUCTION_TYPE_OTHER,  "g5",        AM_E|OT_v,                   FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 }, 
};


// 2-byte instructions

INST inst_table2[256] = {
/*0F 00*/{ INSTRUCTION_TYPE_OTHER,  "g6",        AM_E|OT_w,                   FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 01*/{ INSTRUCTION_TYPE_OTHER,  "g7",        AM_M|OT_w,                   FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 02*/{ INSTRUCTION_TYPE_PRIV,   "lar",       AM_G|OT_v|P_w,               AM_E|OT_w|P_r,             FLAGS_NONE,   1, EFL_ZF, 0, 0, 0 },
/*0F 03*/{ INSTRUCTION_TYPE_PRIV,   "lsl",       AM_G|OT_v|P_w,               AM_E|OT_w|P_r,             FLAGS_NONE,   1, EFL_ZF, 0, 0, 0 },
/*0F 04*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 05*/{ INSTRUCTION_TYPE_OTHER,  "loadall286",FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 06*/{ INSTRUCTION_TYPE_PRIV,   "clts",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_EAX, 0 },
/*0F 07*/{ INSTRUCTION_TYPE_OTHER,  "loadall",   FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 08*/{ INSTRUCTION_TYPE_PRIV,   "invd",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 09*/{ INSTRUCTION_TYPE_OTHER,  "wbinvd",    FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 0A*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 0B*/{ INSTRUCTION_TYPE_OTHER,  "ud2",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 0C*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 0D*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 0E*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 0F*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 10*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"movups", AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 11*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"movups", AM_W|OT_ps|P_w,              AM_V|OT_ps|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 12*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"movlps", AM_V|OT_q|P_w,               AM_M|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 13*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"movlps", AM_M|OT_q|P_w,               AM_V|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 14*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"unpcklps",AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 15*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"unpcklps",AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 16*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"movhps", AM_V|OT_q|P_w,               AM_M|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 17*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"movhps", AM_M|OT_q|P_w,               AM_V|OT_ps|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 18*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 19*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 1A*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 1B*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 1C*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 1D*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 1E*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 1F*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 20*/{ INSTRUCTION_TYPE_PRIV,   "mov",       AM_R|OT_d|P_w,               AM_C|OT_d|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 21*/{ INSTRUCTION_TYPE_PRIV,   "mov",       AM_R|OT_d|P_w,               AM_D|OT_d|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 22*/{ INSTRUCTION_TYPE_PRIV,   "mov",       AM_C|OT_d|P_w,               AM_R|OT_d|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 23*/{ INSTRUCTION_TYPE_PRIV,   "mov",       AM_D|OT_d|P_w,               AM_R|OT_d|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 24*/{ INSTRUCTION_TYPE_PRIV,   "mov",       AM_R|OT_d|P_w,               AM_T|OT_d|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 25*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 26*/{ INSTRUCTION_TYPE_PRIV,   "mov",       AM_T|OT_d|P_w,               AM_R|OT_d|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 27*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 28*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"movaps", AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 29*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"movaps", AM_W|OT_ps|P_w,              AM_V|OT_ps|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 2A*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"cvtpi2ps",AM_V|OT_ps|P_r,              AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 2B*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"movntps",AM_M|OT_ps|P_w,              AM_V|OT_ps|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 2C*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"cvttps2pi",AM_P|OT_q|P_r,               AM_W|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 2D*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"cvtps2pi",AM_P|OT_q|P_r,               AM_W|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 2E*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"ucomiss",AM_V|OT_ss|P_w,              AM_W|OT_ss|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 2F*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"comiss", AM_V|OT_ss|P_w,              AM_W|OT_ss|P_w,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 30*/{ INSTRUCTION_TYPE_OTHER, "wrmsr",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_EAX|IOP_EDX, IOP_ECX },
/*0F 31*/{ INSTRUCTION_TYPE_OTHER, "rdtsc",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_EAX|IOP_EDX, 0 },
/*0F 32*/{ INSTRUCTION_TYPE_PRIV,  "rdmsr",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_EAX|IOP_EDX, IOP_ECX },
/*0F 33*/{ INSTRUCTION_TYPE_OTHER, "rdpmc",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_EAX|IOP_EDX, IOP_ECX },
/*0F 34*/{ INSTRUCTION_TYPE_SYSENTER,"sysenter",  FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 35*/{ INSTRUCTION_TYPE_PRIV,  "sysexit",    FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 36*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 37*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 38*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 39*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 3A*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 3B*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 3C*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 3D*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 3E*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 3F*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 40*/{ INSTRUCTION_TYPE_MOVC,   "cmovo",     AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 41*/{ INSTRUCTION_TYPE_MOVC,   "cmovno",    AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 42*/{ INSTRUCTION_TYPE_MOVC,   "cmovb",     AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 43*/{ INSTRUCTION_TYPE_MOVC,   "cmovae",    AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 44*/{ INSTRUCTION_TYPE_MOVC,   "cmove",     AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 45*/{ INSTRUCTION_TYPE_MOVC,   "cmovne",    AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 46*/{ INSTRUCTION_TYPE_MOVC,   "cmovbe",    AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 47*/{ INSTRUCTION_TYPE_MOVC,   "cmova",     AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 48*/{ INSTRUCTION_TYPE_MOVC,   "cmovs",     AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 49*/{ INSTRUCTION_TYPE_MOVC,   "cmovns",    AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 4A*/{ INSTRUCTION_TYPE_MOVC,   "cmovp",     AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 4B*/{ INSTRUCTION_TYPE_MOVC,   "cmovnp",    AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 4C*/{ INSTRUCTION_TYPE_MOVC,   "cmovl",     AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 4D*/{ INSTRUCTION_TYPE_MOVC,   "cmovge",    AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 4E*/{ INSTRUCTION_TYPE_MOVC,   "cmovle",    AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 4F*/{ INSTRUCTION_TYPE_MOVC,   "cmovg",     AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 50*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"movmskps",AM_G|OT_d|P_w,               AM_V|OT_ps|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 51*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"sqrtps", AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 52*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"rsqrtps",AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 53*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"rcpps",  AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 54*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"andps",  AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 55*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"andnps", AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 56*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"orps",   AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 57*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"xorps",  AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 58*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"addps",  AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 59*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"mulps",  AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 5A*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"cvtps2pd",AM_V|OT_pd|P_r,              AM_W|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 5B*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"cvtdq2ps",AM_V|OT_ps|P_r,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 5C*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"subps",  AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 5D*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"minps",  AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 5E*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"divps",  AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 5F*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"maxps",  AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 60*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"punpcklbw",AM_P|OT_q|P_w,               AM_Q|OT_d|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 61*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"punpcklwd",AM_P|OT_q|P_w,               AM_Q|OT_d|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 62*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"punpckldq",AM_P|OT_q|P_w,               AM_Q|OT_d|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 63*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"packusdw",AM_P|OT_q|P_w,               AM_Q|OT_d|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 64*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pcmpgtb",AM_P|OT_q|P_w,               AM_Q|OT_d|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 65*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pcmpgtw",AM_P|OT_q|P_w,               AM_Q|OT_d|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 66*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pcmpgtd",AM_P|OT_q|P_w,               AM_Q|OT_d|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 67*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"packsswb",AM_P|OT_q|P_w,               AM_Q|OT_d|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 68*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"punpckhbw",AM_P|OT_q|P_w,               AM_Q|OT_d|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 69*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"punpckhbd",AM_P|OT_q|P_w,               AM_Q|OT_d|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 6A*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"punpckhdq",AM_P|OT_q|P_w,               AM_Q|OT_d|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 6B*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"packssdw",AM_P|OT_q|P_w,               AM_Q|OT_d|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 6C*/{ INSTRUCTION_TYPE_OTHER|TYPE_3,NULL,   FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 6D*/{ INSTRUCTION_TYPE_OTHER|TYPE_3,NULL,   FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 6E*/{ INSTRUCTION_TYPE_MMX|TYPE_3, "movd",  AM_P|OT_d|P_w,               AM_E|OT_d|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 6F*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"movq",   AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 70*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pshufw", AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             AM_I|OT_b,    1, 0, 0, 0, 0 },
	// groups 12-14
/*0F 71*/{ INSTRUCTION_TYPE_MMX,    "g12",       AM_P|OT_q,                   AM_I|OT_b,                 FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 72*/{ INSTRUCTION_TYPE_MMX,    "g13",       AM_P|OT_q,                   AM_I|OT_b,                 FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 73*/{ INSTRUCTION_TYPE_MMX,    "g14",       AM_P|OT_q,                   AM_I|OT_b,                 FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 74*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pcmpeqb",AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 75*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pcmpeqw",AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 76*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pcmpeqd",AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 77*/{ INSTRUCTION_TYPE_MMX,    "emms",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 78*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 79*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 7A*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 7B*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 7C*/{ INSTRUCTION_TYPE_OTHER||TYPE_3,NULL,  FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 7D*/{ INSTRUCTION_TYPE_OTHER||TYPE_3,NULL,  FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F 7E*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"movd",   AM_E|OT_d|P_w,               AM_P|OT_d|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 7F*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"movq",   AM_Q|OT_q|P_w,               AM_P|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F 80*/{ INSTRUCTION_TYPE_JMPC,   "jo",        AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_OF, 0, 0 },
/*0F 81*/{ INSTRUCTION_TYPE_JMPC,   "jno",       AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_OF, 0, 0 },
/*0F 82*/{ INSTRUCTION_TYPE_JMPC,   "jc",        AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_CF, 0, 0 },
/*0F 83*/{ INSTRUCTION_TYPE_JMPC,   "jnc",       AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_CF, 0, 0 },
/*0F 84*/{ INSTRUCTION_TYPE_JMPC,   "jz",        AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_ZF, 0, 0 },
/*0F 85*/{ INSTRUCTION_TYPE_JMPC,   "jnz",       AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_ZF, 0, 0 },
/*0F 86*/{ INSTRUCTION_TYPE_JMPC,   "jna",       AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_CF|EFL_ZF, 0, 0 },
/*0F 87*/{ INSTRUCTION_TYPE_JMPC,   "ja",        AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_CF|EFL_ZF, 0, 0 },
/*0F 88*/{ INSTRUCTION_TYPE_JMPC,   "js",        AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_SF, 0, 0 },
/*0F 89*/{ INSTRUCTION_TYPE_JMPC,   "jns",       AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_SF, 0, 0 },
/*0F 8A*/{ INSTRUCTION_TYPE_JMPC,   "jp",        AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_PF, 0, 0 },
/*0F 8B*/{ INSTRUCTION_TYPE_JMPC,   "jpo",       AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_PF, 0, 0 },
/*0F 8C*/{ INSTRUCTION_TYPE_JMPC,   "jl",        AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_SF|EFL_OF, 0, 0 },
/*0F 8D*/{ INSTRUCTION_TYPE_JMPC,   "jnl",       AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_SF|EFL_OF, 0, 0 },
/*0F 8E*/{ INSTRUCTION_TYPE_JMPC,   "jng",       AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_ZF|EFL_SF|EFL_OF, 0, 0 },
/*0F 8F*/{ INSTRUCTION_TYPE_JMPC,   "jg",        AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0, 0, EFL_ZF|EFL_SF|EFL_OF, 0, 0 },
/*0F 90*/{ INSTRUCTION_TYPE_SETC,   "seto",      AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, EFL_OF, 0, 0 },
/*0F 91*/{ INSTRUCTION_TYPE_SETC,   "setno",     AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, EFL_OF, 0, 0 },
/*0F 92*/{ INSTRUCTION_TYPE_SETC,   "setb",      AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, EFL_CF, 0, 0 },
/*0F 93*/{ INSTRUCTION_TYPE_SETC,   "setnb",     AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, EFL_CF, 0, 0 },
/*0F 94*/{ INSTRUCTION_TYPE_SETC,   "setz",      AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, EFL_ZF, 0, 0 },
/*0F 95*/{ INSTRUCTION_TYPE_SETC,   "setnz",     AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, EFL_ZF, 0, 0 },
/*0F 96*/{ INSTRUCTION_TYPE_SETC,   "setbe",     AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, EFL_CF|EFL_ZF, 0, 0 },
/*0F 97*/{ INSTRUCTION_TYPE_SETC,   "setnbe",    AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, EFL_CF|EFL_ZF, 0, 0 },
/*0F 98*/{ INSTRUCTION_TYPE_SETC,   "sets",      AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, EFL_SF, 0, 0 },
/*0F 99*/{ INSTRUCTION_TYPE_SETC,   "setns",     AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, EFL_SF, 0, 0 },
/*0F 9A*/{ INSTRUCTION_TYPE_SETC,   "setp",      AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, EFL_PF, 0, 0 },
/*0F 9B*/{ INSTRUCTION_TYPE_SETC,   "setnp",     AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, EFL_PF, 0, 0 },
/*0F 9C*/{ INSTRUCTION_TYPE_SETC,   "setl",      AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, EFL_SF|EFL_OF, 0, 0 },
/*0F 9D*/{ INSTRUCTION_TYPE_SETC,   "setnl",     AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, EFL_SF|EFL_OF, 0, 0 },
/*0F 9E*/{ INSTRUCTION_TYPE_SETC,   "setle",     AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, EFL_ZF|EFL_SF|EFL_OF, 0, 0 },
/*0F 9F*/{ INSTRUCTION_TYPE_SETC,   "setnle",    AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, EFL_ZF|EFL_SF|EFL_OF, 0, 0 },
/*0F A0*/{ INSTRUCTION_TYPE_PUSH,   "push",      AM_REG|REG_FS|F_r|P_r,       FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ESP },
/*0F A1*/{ INSTRUCTION_TYPE_POP,    "pop",       AM_REG|REG_FS|F_r|P_w,       FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ESP },
/*0F A2*/{ INSTRUCTION_TYPE_OTHER,  "cpuid",     FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_EAX|IOP_EBX|IOP_ECX|IOP_EDX, IOP_EAX },
/*0F A3*/{ INSTRUCTION_TYPE_BT,     "bt",        AM_E|OT_v|P_r,               AM_G|OT_v|P_r,             FLAGS_NONE,   1, EFL_CF, 0, 0, 0 },
/*0F A4*/{ INSTRUCTION_TYPE_OTHER,  "shld",      AM_E|OT_v|P_w,               AM_G|OT_v|P_r,             AM_I|OT_b|P_r,1, EFL_CF|EFL_SF|EFL_ZF|EFL_PF|EFL_OF|EFL_AF, 0, 0, 0 },
/*0F A5*/{ INSTRUCTION_TYPE_OTHER,  "shld",      AM_E|OT_v|P_w,               AM_G|OT_v|P_r,   AM_REG|REG_ECX|OT_b|P_r,1, EFL_CF|EFL_SF|EFL_ZF|EFL_PF|EFL_OF|EFL_AF, 0, 0, 0 },
/*0F A6*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F A7*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F A8*/{ INSTRUCTION_TYPE_PUSH,   "push",      AM_REG|REG_GS|F_r|P_r,       FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ESP },
/*0F A9*/{ INSTRUCTION_TYPE_POP,    "pop",       AM_REG|REG_GS|F_r|P_w,       FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_ESP, IOP_ESP },
/*0F AA*/{ INSTRUCTION_TYPE_OTHER,  "rsm",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F AB*/{ INSTRUCTION_TYPE_BTS,    "bts",       AM_E|OT_v|P_r,               AM_G|OT_v|P_r,             FLAGS_NONE,   1, EFL_CF, 0, 0, 0 },
/*0F AC*/{ INSTRUCTION_TYPE_OTHER,  "shrd",      AM_E|OT_v|P_w,               AM_G|OT_v|P_r,             AM_I|OT_b|P_r,1, EFL_CF|EFL_SF|EFL_ZF|EFL_PF|EFL_OF|EFL_AF, 0, 0, 0 },
/*0F AD*/{ INSTRUCTION_TYPE_OTHER,  "shrd",      AM_E|OT_v|P_w,               AM_G|OT_v|P_r,   AM_REG|REG_ECX|OT_b|P_r,1, EFL_CF|EFL_SF|EFL_ZF|EFL_PF|EFL_OF|EFL_AF, 0, 0, 0 },
	// XXX: check addressing mode, Intel manual is a little bit confusing...
/*0F AE*/{ INSTRUCTION_TYPE_OTHER,  "grp15",     AM_E|OT_v,                   FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F AF*/{ INSTRUCTION_TYPE_EIMUL,  "imul",      AM_G|OT_v|P_r,               AM_E|OT_v|P_r,            FLAGS_NONE|P_r,1, EFL_CF|EFL_OF, 0, 0, 0 },
/*0F B0*/{ INSTRUCTION_TYPE_OTHER,  "cmpxchg",   AM_E|OT_b|P_w,               AM_G|OT_b|P_w,             FLAGS_NONE,   1, EFL_ALL_COMMON, 0, IOP_EAX, IOP_EAX },
/*0F B1*/{ INSTRUCTION_TYPE_OTHER,  "cmpxchg",   AM_E|OT_v|P_w,               AM_G|OT_v|P_w,             FLAGS_NONE,   1, EFL_ALL_COMMON, 0, IOP_EAX, IOP_EAX },
/*0F B2*/{ INSTRUCTION_TYPE_LFP,    "lss",       AM_G|OT_v|P_w,               AM_M|OT_v|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F B3*/{ INSTRUCTION_TYPE_BTR,    "btr",       AM_E|OT_v|P_r,               AM_G|OT_v|P_r,             FLAGS_NONE,   1, EFL_CF, 0, 0, 0 },
/*0F B4*/{ INSTRUCTION_TYPE_LFP,    "lfs",       AM_G|OT_v|P_w,               AM_M|OT_v|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F B5*/{ INSTRUCTION_TYPE_LFP,    "lgs",       AM_G|OT_v|P_w,               AM_M|OT_v|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F B6*/{ INSTRUCTION_TYPE_MOVZX,  "movzx",     AM_G|OT_v|P_w,               AM_E|OT_b|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F B7*/{ INSTRUCTION_TYPE_MOVZX,  "movzx",     AM_G|OT_v|P_w,               AM_E|OT_w|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F B8*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
	// XXX: group 10 / invalid opcode?
/*0F B9*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F BA*/{ INSTRUCTION_TYPE_OTHER, "g8",         AM_E|OT_v,                   AM_I|OT_b,                 FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F BB*/{ INSTRUCTION_TYPE_BTC,    "btc",       AM_E|OT_v|P_r,               AM_G|OT_v|P_r,             FLAGS_NONE,   1, EFL_CF, 0, 0, 0 },
/*0F BC*/{ INSTRUCTION_TYPE_BSF,    "bsf",       AM_G|OT_v|P_r,               AM_E|OT_v|P_r,             FLAGS_NONE,   1, EFL_ZF, 0, 0, 0 },
/*0F BD*/{ INSTRUCTION_TYPE_BSR,    "bsr",       AM_G|OT_v|P_r,               AM_E|OT_v|P_r,             FLAGS_NONE,   1, EFL_ZF, 0, 0, 0 },
/*0F BE*/{ INSTRUCTION_TYPE_MOVSX,  "movsx",     AM_G|OT_v|P_w,               AM_E|OT_b|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F BF*/{ INSTRUCTION_TYPE_MOVSX,  "movsx",     AM_G|OT_v|P_w,               AM_E|OT_w|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F C0*/{ INSTRUCTION_TYPE_XADD,   "xadd",      AM_E|OT_b|P_w,               AM_G|OT_b|P_w,             FLAGS_NONE,   1, EFL_ALL_COMMON, 0, 0, 0 },
/*0F C1*/{ INSTRUCTION_TYPE_XADD,   "xadd",      AM_E|OT_v|P_w,               AM_G|OT_v|P_w,             FLAGS_NONE,   1, EFL_ALL_COMMON, 0, 0, 0 },
/*0F C2*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"cmpps",  AM_V|OT_ps|P_r,              AM_W|OT_ps|P_r,            AM_I|OT_b,    1, 0, 0, 0, 0 },
/*0F C3*/{ INSTRUCTION_TYPE_OTHER,  "movnti",    AM_M|OT_d|P_w,               AM_G|OT_d|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F C4*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"pinsrw", AM_P|OT_w|P_w,               AM_E|OT_w|P_r,             AM_I|OT_b,    1, 0, 0, 0, 0 },
/*0F C5*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"pextrv", AM_G|OT_w|P_w,               AM_P|OT_w|P_r,             AM_I|OT_b|P_r,1, 0, 0, 0, 0 },
/*0F C6*/{ INSTRUCTION_TYPE_SSE|TYPE_3,"shufps", AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            AM_I|OT_b|P_r,1, 0, 0, 0, 0 },
/*0F C7*/{ INSTRUCTION_TYPE_OTHER,  "g9",        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F C8*/{ INSTRUCTION_TYPE_BSWAP,  "bswap",     AM_REG|REG_EAX|OT_v|P_w,     FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F C9*/{ INSTRUCTION_TYPE_BSWAP,  "bswap",     AM_REG|REG_ECX|OT_v|P_w,     FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F CA*/{ INSTRUCTION_TYPE_BSWAP,  "bswap",     AM_REG|REG_EDX|OT_v|P_w,     FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F CB*/{ INSTRUCTION_TYPE_BSWAP,  "bswap",     AM_REG|REG_EBX|OT_v|P_w,     FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F CC*/{ INSTRUCTION_TYPE_BSWAP,  "bswap",     AM_REG|REG_ESP|OT_v|P_w,     FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F CD*/{ INSTRUCTION_TYPE_BSWAP,  "bswap",     AM_REG|REG_EBP|OT_v|P_w,     FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F CE*/{ INSTRUCTION_TYPE_BSWAP,  "bswap",     AM_REG|REG_ESI|OT_v|P_w,     FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F CF*/{ INSTRUCTION_TYPE_BSWAP,  "bswap",     AM_REG|REG_EDI|OT_v|P_w,     FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F D0*/{ INSTRUCTION_TYPE_OTHER|TYPE_3,NULL,   FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F D1*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"psrlw",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F D2*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"psrld",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F D3*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"psrlq",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F D4*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"paddq",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F D5*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pmullw", AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F D6*/{ INSTRUCTION_TYPE_OTHER|TYPE_3,NULL,   FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F D7*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pmovmskb",AM_G|OT_q|P_w,               AM_P|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F D8*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"psubusb",AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F D9*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"psubusw",AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F DA*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pminub", AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F DB*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pand",   AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F DC*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"paddusb",AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F DD*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"paddusw",AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F DE*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pmaxsw", AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F DF*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pandn",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F E0*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pavgb",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F E1*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"psraw",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F E2*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"psrad",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F E3*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pavgw",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F E4*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pmulhuw",AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F E5*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pmulhw", AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F E6*/{ INSTRUCTION_TYPE_OTHER|TYPE_3,NULL,   FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F E7*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"movntq", AM_M|OT_q|P_w,               AM_V|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F E8*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"psubsb", AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F E9*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"psubsw", AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F EA*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pminsw", AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F EB*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"por",    AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F EC*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"paddsb", AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F ED*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"paddsw", AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F EE*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pmaxsw", AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F EF*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pxor",   AM_P|OT_q,                   AM_Q|OT_q,                 FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F F0*/{ INSTRUCTION_TYPE_OTHER|TYPE_3,NULL,   FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*0F F1*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"psllw",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F F2*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pslld",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F F3*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"psllq",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F F4*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pmuludq",AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F F5*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"pmaddwd",AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F F6*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"psadbw", AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
	// XXX: check operand types
/*0F F7*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"maskmovq",AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F F8*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"psubb",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F F9*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"psubw",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F FA*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"psubd",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F FB*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"psubq",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F FC*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"paddb",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F FD*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"paddw",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F FE*/{ INSTRUCTION_TYPE_MMX|TYPE_3,"paddd",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*0F FF*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
};

// 3-byte instructions, prefix 0x66

// Yeah, I know, it's waste to use a full 256-instruction table but now
// I'm prepared for future Intel extensions ;-)

INST inst_table3_66[256] = {
/*66 0F 00*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 01*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 02*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 03*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 04*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 05*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 06*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 07*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 08*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 09*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 0A*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 0B*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 0C*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 0D*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 0E*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 0F*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 10*/{ INSTRUCTION_TYPE_SSE,    "movupd",    AM_V|OT_pd|P_w,              AM_W|OT_pd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 11*/{ INSTRUCTION_TYPE_SSE,    "movupd",    AM_W|OT_pd|P_w,              AM_V|OT_pd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 12*/{ INSTRUCTION_TYPE_SSE,    "movlpd",    AM_V|OT_q|P_w,               AM_M|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 13*/{ INSTRUCTION_TYPE_SSE,    "movlpd",    AM_M|OT_q|P_w,               AM_V|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 14*/{ INSTRUCTION_TYPE_SSE,    "unpcklpd",  AM_V|OT_pd|P_w,              AM_W|OT_pd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 15*/{ INSTRUCTION_TYPE_SSE,    "unpcklpd",  AM_V|OT_pd|P_w,              AM_W|OT_pd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 16*/{ INSTRUCTION_TYPE_SSE,    "movhpd",    AM_V|OT_q|P_w,               AM_M|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 17*/{ INSTRUCTION_TYPE_SSE,    "movhpd",    AM_M|OT_q|P_w,               AM_V|OT_pd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 18*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 19*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 1A*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 1B*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 1C*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 1D*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 1E*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 1F*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 20*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 21*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 22*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 23*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 24*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 25*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 26*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 27*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 28*/{ INSTRUCTION_TYPE_SSE,    "movapd",    AM_V|OT_pd|P_w,              AM_W|OT_pd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 29*/{ INSTRUCTION_TYPE_SSE,    "movapd",    AM_W|OT_pd|P_w,              AM_V|OT_pd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 2A*/{ INSTRUCTION_TYPE_SSE,    "cvtpi2pd",  AM_V|OT_pd|P_r,              AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 2B*/{ INSTRUCTION_TYPE_SSE,    "movntpd",   AM_M|OT_pd|P_w,              AM_V|OT_pd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 2C*/{ INSTRUCTION_TYPE_SSE,    "cvttpd2pi", AM_P|OT_q|P_r,               AM_W|OT_pd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 2D*/{ INSTRUCTION_TYPE_SSE,    "cvtpd2pi",  AM_P|OT_q|P_r,               AM_W|OT_pd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 2E*/{ INSTRUCTION_TYPE_SSE,    "ucomisd",   AM_V|OT_sd|P_w,              AM_W|OT_sd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 2F*/{ INSTRUCTION_TYPE_SSE,    "comisd",    AM_V|OT_sd|P_w,              AM_W|OT_sd|P_w,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 30*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 31*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 32*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 33*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 34*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 35*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 36*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 37*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 38*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 39*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 3A*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 3B*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 3C*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 3D*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 3E*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 3F*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 40*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 41*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 42*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 43*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 44*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 45*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 46*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 47*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 48*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 49*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 4A*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 4B*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 4C*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 4D*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 4E*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 4F*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 50*/{ INSTRUCTION_TYPE_SSE,    "movmskpd",  AM_G|OT_d|P_w,               AM_V|OT_pd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 51*/{ INSTRUCTION_TYPE_SSE,    "sqrtpd",    AM_V|OT_pd|P_w,              AM_W|OT_pd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 52*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 53*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 54*/{ INSTRUCTION_TYPE_SSE,    "andpd",     AM_V|OT_pd|P_w,              AM_W|OT_pd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 55*/{ INSTRUCTION_TYPE_SSE,    "andnpd",    AM_V|OT_pd|P_w,              AM_W|OT_pd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 56*/{ INSTRUCTION_TYPE_SSE,    "orpd",      AM_V|OT_pd|P_w,              AM_W|OT_pd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 57*/{ INSTRUCTION_TYPE_SSE,    "xorpd",     AM_V|OT_pd|P_w,              AM_W|OT_pd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 58*/{ INSTRUCTION_TYPE_SSE,    "addpd",     AM_V|OT_pd|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 59*/{ INSTRUCTION_TYPE_SSE,    "mulpd",     AM_V|OT_pd|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 5A*/{ INSTRUCTION_TYPE_SSE,    "cvtpd2ps",  AM_V|OT_pd|P_r,              AM_W|OT_pd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 5B*/{ INSTRUCTION_TYPE_SSE,    "cvtps2dq",  AM_V|OT_pd|P_r,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 5C*/{ INSTRUCTION_TYPE_SSE,    "subpd",     AM_V|OT_pd|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 5D*/{ INSTRUCTION_TYPE_SSE,    "minpd",     AM_V|OT_pd|P_w,              AM_W|OT_pd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 5E*/{ INSTRUCTION_TYPE_SSE,    "divpd",     AM_V|OT_pd|P_w,              AM_W|OT_pd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 5F*/{ INSTRUCTION_TYPE_SSE,    "maxpd",     AM_V|OT_pd|P_w,              AM_W|OT_pd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 60*/{ INSTRUCTION_TYPE_SSE,    "punpcklbw", AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 61*/{ INSTRUCTION_TYPE_SSE,    "punpcklwd", AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 62*/{ INSTRUCTION_TYPE_SSE,    "punockldq", AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 63*/{ INSTRUCTION_TYPE_SSE,    "packusdw",  AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 64*/{ INSTRUCTION_TYPE_SSE,    "pcmpgtb",   AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 65*/{ INSTRUCTION_TYPE_SSE,    "pcmpgtw",   AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 66*/{ INSTRUCTION_TYPE_SSE,    "pcmpgtd",   AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 67*/{ INSTRUCTION_TYPE_SSE,    "packsswb",  AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 68*/{ INSTRUCTION_TYPE_SSE,    "punpckhbw", AM_V|OT_dq|P_w,              AM_Q|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 69*/{ INSTRUCTION_TYPE_SSE,    "punpckhbd", AM_V|OT_dq|P_w,              AM_Q|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 6A*/{ INSTRUCTION_TYPE_SSE,    "punpckhdq", AM_V|OT_dq|P_w,              AM_Q|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 6B*/{ INSTRUCTION_TYPE_SSE,    "packssdw",  AM_V|OT_dq|P_w,              AM_Q|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 6C*/{ INSTRUCTION_TYPE_SSE,    "punpcklqdq", AM_V|OT_dq|P_w,             AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 6D*/{ INSTRUCTION_TYPE_SSE,    "punpckhqd", AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 6E*/{ INSTRUCTION_TYPE_SSE,    "movd",      AM_V|OT_d|P_w,               AM_E|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 6F*/{ INSTRUCTION_TYPE_SSE,    "movdqa",    AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 70*/{ INSTRUCTION_TYPE_SSE,    "pshufd",    AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            AM_I|OT_b,    1, 0, 0, 0, 0 },
	// groups 12-14
/*66 0F 71*/{ INSTRUCTION_TYPE_SSE,   "g12",        AM_P|OT_dq,                  AM_I|OT_b,                 FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 72*/{ INSTRUCTION_TYPE_SSE,   "g13",        AM_W|OT_dq,                  AM_I|OT_b,                 FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 73*/{ INSTRUCTION_TYPE_SSE,   "g14",        AM_W|OT_dq,                  AM_I|OT_b,                 FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 74*/{ INSTRUCTION_TYPE_SSE,    "pcmpeqb",   AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 75*/{ INSTRUCTION_TYPE_SSE,    "pcmpeqw",   AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 76*/{ INSTRUCTION_TYPE_SSE,    "pcmpeqd",   AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 77*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 78*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 79*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 7A*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 7B*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 7C*/{ INSTRUCTION_TYPE_SSE,   "haddpd",     AM_V|OT_pd,                  AM_W|OT_pd,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 7D*/{ INSTRUCTION_TYPE_SSE,   "hsubpd",     AM_V|OT_pd,                  AM_W|OT_pd,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 7E*/{ INSTRUCTION_TYPE_SSE,    "movd",      AM_E|OT_d|P_w,               AM_V|OT_d|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 7F*/{ INSTRUCTION_TYPE_SSE,    "movdqa",    AM_W|OT_dq|P_w,              AM_V|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F 80*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 81*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 82*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 83*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 84*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 85*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 86*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 87*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 88*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 89*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 8A*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 8B*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 8C*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 8D*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 8E*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 8F*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 90*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 91*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 92*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 93*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 94*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 95*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 96*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 97*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 98*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 99*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 9A*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 9B*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 9C*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 9D*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 9E*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F 9F*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F A0*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F A1*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F A2*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F A3*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F A4*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F A5*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F A6*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F A7*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F A8*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F A9*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F AA*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F AB*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F AC*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F AD*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F AE*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F AF*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F B0*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F B1*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F B2*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F B3*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F B4*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F B5*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F B6*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F B7*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F B8*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F B9*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F BA*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F BB*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F BC*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F BD*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F BE*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F BF*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F C0*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F C1*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F C2*/{ INSTRUCTION_TYPE_SSE,    "cmppd",     AM_V|OT_pd|P_r,              AM_W|OT_pd|P_r,            AM_I|OT_b,    1, 0, 0, 0, 0 },
/*66 0F C3*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F C4*/{ INSTRUCTION_TYPE_SSE,    "pinsrw",    AM_V|OT_w|P_w,               AM_E|OT_w|P_r,             AM_I|OT_b,    1, 0, 0, 0, 0 },
/*66 0F C5*/{ INSTRUCTION_TYPE_SSE,    "pextrv",    AM_G|OT_w|P_w,               AM_V|OT_w|P_r,             AM_I|OT_b|P_r,1, 0, 0, 0, 0 },
/*66 0F C6*/{ INSTRUCTION_TYPE_SSE,    "shufpd",    AM_V|OT_pd|P_w,              AM_W|OT_pd|P_r,            AM_I|OT_b|P_r,1, 0, 0, 0, 0 },
/*66 0F C7*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F C8*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F C9*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F CA*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F CB*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F CC*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F CD*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F CE*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F CF*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F D0*/{ INSTRUCTION_TYPE_SSE,    "addsubpd",  AM_V|OT_pd|P_w,              AM_W|OT_pd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F D1*/{ INSTRUCTION_TYPE_SSE,    "psrlw",     AM_V|OT_dq|P_w,              AM_Q|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F D2*/{ INSTRUCTION_TYPE_SSE,    "psrld",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F D3*/{ INSTRUCTION_TYPE_SSE,    "psrlq",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F D4*/{ INSTRUCTION_TYPE_SSE,    "paddq",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F D5*/{ INSTRUCTION_TYPE_SSE,    "pmullw",    AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F D6*/{ INSTRUCTION_TYPE_SSE,    "movq",      AM_W|OT_q|P_w,               AM_V|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F D7*/{ INSTRUCTION_TYPE_SSE,    "pmovmskb",  AM_G|OT_d|P_w,               AM_V|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F D8*/{ INSTRUCTION_TYPE_SSE,    "psubusb",   AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F D9*/{ INSTRUCTION_TYPE_SSE,    "psubusw",   AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F DA*/{ INSTRUCTION_TYPE_SSE,    "pminub",    AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F DB*/{ INSTRUCTION_TYPE_SSE,    "pand",      AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F DC*/{ INSTRUCTION_TYPE_SSE,    "paddusb",   AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F DD*/{ INSTRUCTION_TYPE_SSE,    "paddusw",   AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F DE*/{ INSTRUCTION_TYPE_SSE,    "pmaxsw",    AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F DF*/{ INSTRUCTION_TYPE_SSE,    "pandn",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F E0*/{ INSTRUCTION_TYPE_SSE,    "pavgb",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F E1*/{ INSTRUCTION_TYPE_SSE,    "psraw",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F E2*/{ INSTRUCTION_TYPE_SSE,    "psrad",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F E3*/{ INSTRUCTION_TYPE_SSE,    "pavgw",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F E4*/{ INSTRUCTION_TYPE_SSE,    "pmulhuw",   AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F E5*/{ INSTRUCTION_TYPE_SSE,    "pmulhw",    AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F E6*/{ INSTRUCTION_TYPE_SSE,    "cvttpd2dq", AM_V|OT_dq|P_r,              AM_W|OT_pd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F E7*/{ INSTRUCTION_TYPE_SSE,    "movntq",    AM_M|OT_dq|P_w,              AM_V|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F E8*/{ INSTRUCTION_TYPE_SSE,    "psubsb",    AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F E9*/{ INSTRUCTION_TYPE_SSE,    "psubsw",    AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F EA*/{ INSTRUCTION_TYPE_SSE,    "pminsw",    AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F EB*/{ INSTRUCTION_TYPE_SSE,    "por",       AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F EC*/{ INSTRUCTION_TYPE_SSE,    "paddsb",    AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F ED*/{ INSTRUCTION_TYPE_SSE,    "paddsw",    AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F EE*/{ INSTRUCTION_TYPE_SSE,    "pmaxsw",    AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F EF*/{ INSTRUCTION_TYPE_SSE,    "pxor",      AM_V|OT_dq,                  AM_W|OT_dq,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F F0*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*66 0F F1*/{ INSTRUCTION_TYPE_SSE,    "psllw",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F F2*/{ INSTRUCTION_TYPE_SSE,    "pslld",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F F3*/{ INSTRUCTION_TYPE_SSE,    "psllq",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F F4*/{ INSTRUCTION_TYPE_SSE,    "pmuludq",   AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F F5*/{ INSTRUCTION_TYPE_SSE,    "pmaddwd",   AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F F6*/{ INSTRUCTION_TYPE_SSE,    "psadbw",    AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F F7*/{ INSTRUCTION_TYPE_SSE,    "maskmovdqu", AM_V|OT_dq|P_w,             AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F F8*/{ INSTRUCTION_TYPE_SSE,    "psubb",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F F9*/{ INSTRUCTION_TYPE_SSE,    "psubw",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F FA*/{ INSTRUCTION_TYPE_SSE,    "psubd",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F FB*/{ INSTRUCTION_TYPE_SSE,    "psubq",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F FC*/{ INSTRUCTION_TYPE_SSE,    "paddb",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F FD*/{ INSTRUCTION_TYPE_SSE,    "paddw",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F FE*/{ INSTRUCTION_TYPE_SSE,    "paddd",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*66 0F FF*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
}; 

// 3-byte instructions, prefix 0xf2

INST inst_table3_f2[256] = {
/*F2 0F 00*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 01*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 02*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 03*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 04*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 05*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 06*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 07*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 08*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 09*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 0A*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 0B*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 0C*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 0D*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 0E*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 0F*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 10*/{ INSTRUCTION_TYPE_SSE,    "movsd",     AM_V|OT_sd|P_w,              AM_W|OT_sd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F2 0F 11*/{ INSTRUCTION_TYPE_SSE,    "movsd",     AM_W|OT_sd|P_w,              AM_V|OT_sd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F2 0F 12*/{ INSTRUCTION_TYPE_SSE,    "movddup",   AM_V|OT_q|P_w,               AM_W|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F2 0F 13*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 14*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 15*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 16*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 17*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 18*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 19*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 1A*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 1B*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 1C*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 1D*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 1E*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 1F*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 20*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 21*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 22*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 23*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 24*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 25*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 26*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 27*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 28*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 29*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 2A*/{ INSTRUCTION_TYPE_SSE,    "cvtsi2sd",  AM_V|OT_sd|P_r,              AM_E|OT_d|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F2 0F 2B*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 2C*/{ INSTRUCTION_TYPE_SSE,    "cvttsd2si", AM_G|OT_d|P_r,               AM_W|OT_sd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F2 0F 2D*/{ INSTRUCTION_TYPE_SSE,    "cvtsd2si",  AM_G|OT_d|P_r,               AM_W|OT_sd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F2 0F 2E*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 2F*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 30*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 31*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 32*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 33*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 34*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 35*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 36*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 37*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 38*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 39*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 3A*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 3B*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 3C*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 3D*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 3E*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 3F*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 40*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 41*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 42*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 43*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 44*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 45*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 46*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 47*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 48*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 49*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 4A*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 4B*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 4C*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 4D*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 4E*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 4F*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 50*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 51*/{ INSTRUCTION_TYPE_SSE,    "sqrtsd",    AM_V|OT_sd|P_w,              AM_W|OT_sd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F2 0F 52*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 53*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 54*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 55*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 56*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 57*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 58*/{ INSTRUCTION_TYPE_SSE,    "addsd",     AM_V|OT_sd|P_w,              AM_W|OT_sd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F2 0F 59*/{ INSTRUCTION_TYPE_SSE,    "mulsd",     AM_V|OT_sd|P_w,              AM_W|OT_sd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F2 0F 5A*/{ INSTRUCTION_TYPE_SSE,    "cvtsd2ss",  AM_V|OT_ss|P_r,              AM_W|OT_sd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F2 0F 5B*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 5C*/{ INSTRUCTION_TYPE_SSE,    "subsd",     AM_V|OT_sd|P_w,              AM_W|OT_sd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F2 0F 5D*/{ INSTRUCTION_TYPE_SSE,    "minsd",     AM_V|OT_sd|P_w,              AM_W|OT_sd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F2 0F 5E*/{ INSTRUCTION_TYPE_SSE,    "divsd",     AM_V|OT_sd|P_w,              AM_W|OT_sd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F2 0F 5F*/{ INSTRUCTION_TYPE_SSE,    "maxsd",     AM_V|OT_sd|P_w,              AM_W|OT_sd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F2 0F 60*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 61*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 62*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 63*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 64*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 65*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 66*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 67*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 68*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 69*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 6A*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 6B*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 6C*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 6D*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 6E*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 6F*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 70*/{ INSTRUCTION_TYPE_SSE,    "pshuflw",   AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            AM_I|OT_b,    1, 0, 0, 0, 0 },
/*F2 0F 71*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 72*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 73*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 74*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 75*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 76*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 77*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 78*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 79*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 7A*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 7B*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 7C*/{ INSTRUCTION_TYPE_SSE,   "haddps",     AM_V|OT_ps,                  AM_W|OT_ps,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F2 0F 7D*/{ INSTRUCTION_TYPE_SSE,   "hsubps",     AM_V|OT_ps,                  AM_W|OT_ps,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F2 0F 7E*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 7F*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 80*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 81*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 82*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 83*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 84*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 85*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 86*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 87*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 88*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 89*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 8A*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 8B*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 8C*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 8D*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 8E*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 8F*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 90*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 91*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 92*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 93*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 94*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 95*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 96*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 97*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 98*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 99*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 9A*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 9B*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 9C*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 9D*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 9E*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F 9F*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F A0*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F A1*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F A2*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F A3*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F A4*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F A5*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F A6*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F A7*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F A8*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F A9*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F AA*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F AB*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F AC*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F AD*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F AE*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F AF*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F B0*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F B1*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F B2*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F B3*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F B4*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F B5*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F B6*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F B7*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F B8*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F B9*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F BA*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F BB*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F BC*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F BD*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F BE*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F BF*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F C0*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F C1*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F C2*/{ INSTRUCTION_TYPE_SSE,    "cmpsd",     AM_V|OT_sd|P_r,              AM_W|OT_sd|P_r,            AM_I|OT_b,    1, 0, 0, 0, 0 },
/*F2 0F C3*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F C4*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F C5*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F C6*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F C7*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F C8*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F C9*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F CA*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F CB*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F CC*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F CD*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F CE*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F CF*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F D0*/{ INSTRUCTION_TYPE_SSE,    "addsubpd",  AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F2 0F D1*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F D2*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F D3*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F D4*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F D5*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F D6*/{ INSTRUCTION_TYPE_SSE,    "movdq2q",   AM_P|OT_q|P_w,               AM_V|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F2 0F D7*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F D8*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F D9*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F DA*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F DB*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F DC*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F DD*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F DE*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F DF*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F E0*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F E1*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F E2*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F E3*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F E4*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F E5*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F E6*/{ INSTRUCTION_TYPE_SSE,    "cvtpd2dq",  AM_V|OT_dq|P_r,              AM_W|OT_pd|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F2 0F E7*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F E8*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F E9*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F EA*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F EB*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F EC*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F ED*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F EE*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F EF*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F F0*/{ INSTRUCTION_TYPE_SSE,   "lddqu",      AM_V|OT_dq,                  AM_M|OT_dq,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F2 0F F1*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F F2*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F F3*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F F4*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F F5*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F F6*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F F7*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F F8*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F F9*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F FA*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F FB*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F FC*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F FD*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F FE*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F2 0F FF*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
}; 

// 3-byte instructions, prefix 0xf3

INST inst_table3_f3[256] = {
/*F3 0F 00*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 01*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 02*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 03*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 04*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 05*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 06*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 07*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 08*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 09*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 0A*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 0B*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 0C*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 0D*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 0E*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 0F*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 10*/{ INSTRUCTION_TYPE_SSE,    "movss",     AM_V|OT_ss|P_w,              AM_W|OT_ss|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F3 0F 11*/{ INSTRUCTION_TYPE_SSE,    "movss",     AM_W|OT_ss|P_w,              AM_V|OT_ss|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F3 0F 12*/{ INSTRUCTION_TYPE_SSE,    "movsldup",  AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F3 0F 13*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 14*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 15*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 16*/{ INSTRUCTION_TYPE_SSE,    "movshdup",  AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F3 0F 17*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 18*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 19*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 1A*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 1B*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 1C*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 1D*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 1E*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 1F*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 20*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 21*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 22*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 23*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 24*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 25*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 26*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 27*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 28*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 29*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 2A*/{ INSTRUCTION_TYPE_SSE,    "cvtsi2ss",  AM_V|OT_ss|P_r,              AM_E|OT_d|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F3 0F 2B*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 2C*/{ INSTRUCTION_TYPE_SSE,    "cvttss2si", AM_G|OT_d|P_r,               AM_W|OT_ss|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F3 0F 2D*/{ INSTRUCTION_TYPE_SSE,    "cvtss2si",  AM_G|OT_d|P_r,               AM_W|OT_ss|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F3 0F 2E*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 2F*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 30*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 31*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 32*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 33*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 34*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 35*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 36*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 37*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 38*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 39*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 3A*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 3B*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 3C*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 3D*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 3E*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 3F*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 40*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 41*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 42*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 43*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 44*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 45*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 46*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 47*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 48*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 49*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 4A*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 4B*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 4C*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 4D*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 4E*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 4F*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 50*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 51*/{ INSTRUCTION_TYPE_SSE,    "sqrtss",    AM_V|OT_ss|P_w,              AM_W|OT_ss|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F3 0F 52*/{ INSTRUCTION_TYPE_SSE,    "rsqrtss",   AM_V|OT_ss|P_w,              AM_W|OT_ss|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F3 0F 53*/{ INSTRUCTION_TYPE_SSE,    "rcpss",     AM_V|OT_ss|P_w,              AM_W|OT_ss|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F3 0F 54*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 55*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 56*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 57*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 58*/{ INSTRUCTION_TYPE_SSE,    "addss",     AM_V|OT_ss|P_w,              AM_W|OT_ss|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F3 0F 59*/{ INSTRUCTION_TYPE_SSE,    "mulss",     AM_V|OT_ss|P_w,              AM_W|OT_ss|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F3 0F 5A*/{ INSTRUCTION_TYPE_SSE,    "cvtsd2sd",  AM_V|OT_sd|P_r,              AM_W|OT_ss|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F3 0F 5B*/{ INSTRUCTION_TYPE_SSE,    "cvttps2dq", AM_V|OT_dq|P_r,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F3 0F 5C*/{ INSTRUCTION_TYPE_SSE,    "subss",     AM_V|OT_ss|P_w,              AM_W|OT_ss|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F3 0F 5D*/{ INSTRUCTION_TYPE_SSE,    "minss",     AM_V|OT_ss|P_w,              AM_W|OT_ss|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F3 0F 5E*/{ INSTRUCTION_TYPE_SSE,    "divss",     AM_V|OT_ss|P_w,              AM_W|OT_ss|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F3 0F 5F*/{ INSTRUCTION_TYPE_SSE,    "maxss",     AM_V|OT_ss|P_w,              AM_W|OT_ss|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F3 0F 60*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 61*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 62*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 63*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 64*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 65*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 66*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 67*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 68*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 69*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 6A*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 6B*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 6C*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 6D*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 6E*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 6F*/{ INSTRUCTION_TYPE_SSE,    "movdqu",    AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            AM_I|OT_b,    1, 0, 0, 0, 0 },
/*F3 0F 70*/{ INSTRUCTION_TYPE_SSE,    "pshufhw",   AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            AM_I|OT_b,    1, 0, 0, 0, 0 },
/*F3 0F 71*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 72*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 73*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 74*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 75*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 76*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 77*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 78*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 79*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 7A*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 7B*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 7C*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 7D*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 7E*/{ INSTRUCTION_TYPE_SSE,    "movq",      AM_V|OT_q|P_w,               AM_W|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F3 0F 7F*/{ INSTRUCTION_TYPE_SSE,    "movdqu",    AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F3 0F 80*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 81*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 82*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 83*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 84*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 85*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 86*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 87*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 88*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 89*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 8A*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 8B*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 8C*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 8D*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 8E*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 8F*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 90*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 91*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 92*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 93*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 94*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 95*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 96*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 97*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 98*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 99*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 9A*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 9B*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 9C*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 9D*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 9E*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F 9F*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F A0*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F A1*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F A2*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F A3*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F A4*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F A5*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F A6*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F A7*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F A8*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F A9*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F AA*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F AB*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F AC*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F AD*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F AE*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F AF*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F B0*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F B1*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F B2*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F B3*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F B4*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F B5*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F B6*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F B7*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F B8*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F B9*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F BA*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F BB*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F BC*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F BD*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F BE*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F BF*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F C0*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F C1*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F C2*/{ INSTRUCTION_TYPE_SSE,    "cmpss",     AM_V|OT_ss|P_r,              AM_W|OT_ss|P_r,            AM_I|OT_b,    1, 0, 0, 0, 0 },
/*F3 0F C3*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F C4*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F C5*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F C6*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F C7*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F C8*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F C9*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F CA*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F CB*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F CC*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F CD*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F CE*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F CF*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F D0*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F D1*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F D2*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F D3*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F D4*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F D5*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F D6*/{ INSTRUCTION_TYPE_SSE,    "movq2dq",   AM_V|OT_dq|P_w,              AM_Q|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F3 0F D7*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F D8*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F D9*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F DA*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F DB*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F DC*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F DD*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F DE*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F DF*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F E0*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F E1*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F E2*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F E3*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F E4*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F E5*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F E6*/{ INSTRUCTION_TYPE_SSE,    "cvtdq2pd",  AM_V|OT_pd|P_r,              AM_W|OT_q|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
/*F3 0F E7*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F E8*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F E9*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F EA*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F EB*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F EC*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F ED*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F EE*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F EF*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F F0*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F F1*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F F2*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F F3*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F F4*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F F5*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F F6*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F F7*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F F8*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F F9*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F FA*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F FB*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F FC*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F FD*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F FE*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*F3 0F FF*/{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
}; 

// Extension tables

INST inst_table_ext1_1[8] = {
	{ INSTRUCTION_TYPE_ADD,   "add",        AM_E|OT_b|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, EFL_MATH, 0, 0, 0 },
	{ INSTRUCTION_TYPE_OR,    "or",         AM_E|OT_b|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, EFL_BITWISE, 0, 0, 0 },
	{ INSTRUCTION_TYPE_ADC,   "adc",        AM_E|OT_b|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, EFL_MATH, 0, 0, 0 },
	{ INSTRUCTION_TYPE_SBB,   "sbb",        AM_E|OT_b|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, EFL_MATH, 0, 0, 0 },
	{ INSTRUCTION_TYPE_AND,   "and",        AM_E|OT_b|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, EFL_BITWISE, 0, 0, 0 },
	{ INSTRUCTION_TYPE_SUB,   "sub",        AM_E|OT_b|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, EFL_MATH, 0, 0, 0 },
	{ INSTRUCTION_TYPE_XOR,   "xor",        AM_E|OT_b|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, EFL_BITWISE, 0, 0, 0 },
	{ INSTRUCTION_TYPE_CMP,   "cmp",        AM_E|OT_b|P_r,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, EFL_ALL_COMMON, 0, 0, 0 },
};
INST inst_table_ext1_2[8] = {
	{ INSTRUCTION_TYPE_ADD,   "add",        AM_E|OT_v|P_w,               AM_I|OT_v|P_r,             FLAGS_NONE,   1, EFL_MATH, 0, 0, 0 },
	{ INSTRUCTION_TYPE_OR,    "or",         AM_E|OT_v|P_w,               AM_I|OT_v|P_r,             FLAGS_NONE,   1, EFL_BITWISE, 0, 0, 0 },
	{ INSTRUCTION_TYPE_ADC,   "adc",        AM_E|OT_v|P_w,               AM_I|OT_v|P_r,             FLAGS_NONE,   1, EFL_MATH, 0, 0, 0 },
	{ INSTRUCTION_TYPE_SBB,   "sbb",        AM_E|OT_v|P_w,               AM_I|OT_v|P_r,             FLAGS_NONE,   1, EFL_MATH, 0, 0, 0 },
	{ INSTRUCTION_TYPE_AND,   "and",        AM_E|OT_v|P_w,               AM_I|OT_v|P_r,             FLAGS_NONE,   1, EFL_BITWISE, 0, 0, 0 },
	{ INSTRUCTION_TYPE_SUB,   "sub",        AM_E|OT_v|P_w,               AM_I|OT_v|P_r,             FLAGS_NONE,   1, EFL_MATH, 0, 0, 0 },
	{ INSTRUCTION_TYPE_XOR,   "xor",        AM_E|OT_v|P_w,               AM_I|OT_v|P_r,             FLAGS_NONE,   1, EFL_BITWISE, 0, 0, 0 },
	{ INSTRUCTION_TYPE_CMP,   "cmp",        AM_E|OT_v|P_r,               AM_I|OT_v|P_r,             FLAGS_NONE,   1, EFL_ALL_COMMON, 0, 0, 0 },
};
INST inst_table_ext1_3[8] = {
	{ INSTRUCTION_TYPE_ADD,   "add",        AM_E|OT_v|P_w,               AM_I|OT_b|F_s|P_r,         FLAGS_NONE,   1, EFL_MATH, 0, 0, 0 },
	{ INSTRUCTION_TYPE_OR,    "or",         AM_E|OT_v|P_w,               AM_I|OT_b|F_s|P_r,         FLAGS_NONE,   1, EFL_BITWISE, 0, 0, 0 },
	{ INSTRUCTION_TYPE_ADC,   "adc",        AM_E|OT_v|P_w,               AM_I|OT_b|F_s|P_r,         FLAGS_NONE,   1, EFL_MATH, 0, 0, 0 },
	{ INSTRUCTION_TYPE_SBB,   "sbb",        AM_E|OT_v|P_w,               AM_I|OT_b|F_s|P_r,         FLAGS_NONE,   1, EFL_MATH, 0, 0, 0 },
	{ INSTRUCTION_TYPE_AND,   "and",        AM_E|OT_v|P_w,               AM_I|OT_b|F_s|P_r,         FLAGS_NONE,   1, EFL_BITWISE, 0, 0, 0 },
	{ INSTRUCTION_TYPE_SUB,   "sub",        AM_E|OT_v|P_w,               AM_I|OT_b|F_s|P_r,         FLAGS_NONE,   1, EFL_MATH, 0, 0, 0 },
	{ INSTRUCTION_TYPE_XOR,   "xor",        AM_E|OT_v|P_w,               AM_I|OT_b|F_s|P_r,         FLAGS_NONE,   1, EFL_BITWISE, 0, 0, 0 },
	{ INSTRUCTION_TYPE_CMP,   "cmp",        AM_E|OT_v|P_r,               AM_I|OT_b|F_s|P_r,         FLAGS_NONE,   1, EFL_ALL_COMMON, 0, 0, 0 },
};

INST inst_table_ext2_1[8] = {
	{ INSTRUCTION_TYPE_ROX,   "rol",        AM_E|OT_b|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, EFL_CF|EFL_OF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_ROX,   "ror",        AM_E|OT_b|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, EFL_CF|EFL_OF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_ROX,   "rcl",        AM_E|OT_b|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, EFL_CF|EFL_OF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_ROX,   "rcr",        AM_E|OT_b|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, EFL_CF|EFL_OF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_SHX,   "shl",        AM_E|OT_b|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, EFL_CF|EFL_OF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_SHX,   "shr",        AM_E|OT_b|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, EFL_CF|EFL_OF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_SHX,   "sal",        AM_E|OT_b|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, EFL_CF|EFL_OF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_SHX,   "sar",        AM_E|OT_b|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, EFL_CF|EFL_OF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
};
INST inst_table_ext2_2[8] = {
	{ INSTRUCTION_TYPE_ROX,   "rol",        AM_E|OT_v|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, EFL_CF|EFL_OF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_ROX,   "ror",        AM_E|OT_v|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, EFL_CF|EFL_OF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_ROX,   "rcl",        AM_E|OT_v|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, EFL_CF|EFL_OF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_ROX,   "rcr",        AM_E|OT_v|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, EFL_CF|EFL_OF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_SHX,   "shl",        AM_E|OT_v|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, EFL_CF|EFL_OF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_SHX,   "shr",        AM_E|OT_v|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, EFL_CF|EFL_OF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_SHX,   "sal",        AM_E|OT_v|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, EFL_CF|EFL_OF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_SHX,   "sar",        AM_E|OT_v|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, EFL_CF|EFL_OF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
};
INST inst_table_ext2_3[8] = {
	{ INSTRUCTION_TYPE_ROX,   "rol",        AM_E|OT_b|P_w,               AM_I1|OT_b|P_r,            FLAGS_NONE,   1, EFL_CF|EFL_OF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_ROX,   "ror",        AM_E|OT_b|P_w,               AM_I1|OT_b|P_r,            FLAGS_NONE,   1, EFL_CF|EFL_OF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_ROX,   "rcl",        AM_E|OT_b|P_w,               AM_I1|OT_b|P_r,            FLAGS_NONE,   1, EFL_CF|EFL_OF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_ROX,   "rcr",        AM_E|OT_b|P_w,               AM_I1|OT_b|P_r,            FLAGS_NONE,   1, EFL_CF|EFL_OF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_SHX,   "shl",        AM_E|OT_b|P_w,               AM_I1|OT_b|P_r,            FLAGS_NONE,   1, EFL_CF|EFL_OF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_SHX,   "shr",        AM_E|OT_b|P_w,               AM_I1|OT_b|P_r,            FLAGS_NONE,   1, EFL_CF|EFL_OF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_SHX,   "sal",        AM_E|OT_b|P_w,               AM_I1|OT_b|P_r,            FLAGS_NONE,   1, EFL_CF|EFL_OF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_SHX,   "sar",        AM_E|OT_b|P_w,               AM_I1|OT_b|P_r,            FLAGS_NONE,   1, EFL_CF|EFL_OF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
};
INST inst_table_ext2_4[8] = {
	{ INSTRUCTION_TYPE_ROX,   "rol",        AM_E|OT_v|P_w,               AM_I1|OT_b|P_r,            FLAGS_NONE,   1, EFL_CF|EFL_OF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_ROX,   "ror",        AM_E|OT_v|P_w,               AM_I1|OT_b|P_r,            FLAGS_NONE,   1, EFL_CF|EFL_OF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_ROX,   "rcl",        AM_E|OT_v|P_w,               AM_I1|OT_b|P_r,            FLAGS_NONE,   1, EFL_CF|EFL_OF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_ROX,   "rcr",        AM_E|OT_v|P_w,               AM_I1|OT_b|P_r,            FLAGS_NONE,   1, EFL_CF|EFL_OF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_SHX,   "shl",        AM_E|OT_v|P_w,               AM_I1|OT_b|P_r,            FLAGS_NONE,   1, EFL_CF|EFL_OF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_SHX,   "shr",        AM_E|OT_v|P_w,               AM_I1|OT_b|P_r,            FLAGS_NONE,   1, EFL_CF|EFL_OF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_SHX,   "sal",        AM_E|OT_v|P_w,               AM_I1|OT_b|P_r,            FLAGS_NONE,   1, EFL_CF|EFL_OF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_SHX,   "sar",        AM_E|OT_v|P_w,               AM_I1|OT_b|P_r,            FLAGS_NONE,   1, EFL_CF|EFL_OF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
};
INST inst_table_ext2_5[8] = {
	{ INSTRUCTION_TYPE_ROX,   "rol",        AM_E|OT_b|P_w,               AM_REG|REG_CL|OT_b|P_r,    FLAGS_NONE,   1, EFL_CF|EFL_OF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_ROX,   "ror",        AM_E|OT_b|P_w,               AM_REG|REG_CL|OT_b|P_r,    FLAGS_NONE,   1, EFL_CF|EFL_OF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_ROX,   "rcl",        AM_E|OT_b|P_w,               AM_REG|REG_CL|OT_b|P_r,    FLAGS_NONE,   1, EFL_CF|EFL_OF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_ROX,   "rcr",        AM_E|OT_b|P_w,               AM_REG|REG_CL|OT_b|P_r,    FLAGS_NONE,   1, EFL_CF|EFL_OF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_SHX,   "shl",        AM_E|OT_b|P_w,               AM_REG|REG_CL|OT_b|P_r,    FLAGS_NONE,   1, EFL_CF|EFL_OF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_SHX,   "shr",        AM_E|OT_b|P_w,               AM_REG|REG_CL|OT_b|P_r,    FLAGS_NONE,   1, EFL_CF|EFL_OF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_SHX,   "sal",        AM_E|OT_b|P_w,               AM_REG|REG_CL|OT_b|P_r,    FLAGS_NONE,   1, EFL_CF|EFL_OF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_SHX,   "sar",        AM_E|OT_b|P_w,               AM_REG|REG_CL|OT_b|P_r,    FLAGS_NONE,   1, EFL_CF|EFL_OF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
};
INST inst_table_ext2_6[8] = {
	{ INSTRUCTION_TYPE_ROX,   "rol",        AM_E|OT_v|P_w,               AM_REG|REG_CL|OT_b|P_r,    FLAGS_NONE,   1, EFL_CF|EFL_OF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_ROX,   "ror",        AM_E|OT_v|P_w,               AM_REG|REG_CL|OT_b|P_r,    FLAGS_NONE,   1, EFL_CF|EFL_OF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_ROX,   "rcl",        AM_E|OT_v|P_w,               AM_REG|REG_CL|OT_b|P_r,    FLAGS_NONE,   1, EFL_CF|EFL_OF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_ROX,   "rcr",        AM_E|OT_v|P_w,               AM_REG|REG_CL|OT_b|P_r,    FLAGS_NONE,   1, EFL_CF|EFL_OF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_SHX,   "shl",        AM_E|OT_v|P_w,               AM_REG|REG_CL|OT_b|P_r,    FLAGS_NONE,   1, EFL_CF|EFL_OF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_SHX,   "shr",        AM_E|OT_v|P_w,               AM_REG|REG_CL|OT_b|P_r,    FLAGS_NONE,   1, EFL_CF|EFL_OF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_SHX,   "sal",        AM_E|OT_v|P_w,               AM_REG|REG_CL|OT_b|P_r,    FLAGS_NONE,   1, EFL_CF|EFL_OF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_SHX,   "sar",        AM_E|OT_v|P_w,               AM_REG|REG_CL|OT_b|P_r,    FLAGS_NONE,   1, EFL_CF|EFL_OF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
};

INST inst_table_ext3_1[8] = {
	{ INSTRUCTION_TYPE_TEST,   "test",      AM_E|OT_b|P_r,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, EFL_OF|EFL_CF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_TEST,   "test",      AM_E|OT_b|P_r,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, EFL_OF|EFL_CF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_NOT,    "not",       AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
	{ INSTRUCTION_TYPE_NEG,    "neg",       AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, EFL_CF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_MUL,    "mul",       AM_E|OT_b|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1, EFL_CF|EFL_OF, 0, IOP_EAX, IOP_EAX },
	{ INSTRUCTION_TYPE_IMUL,   "imul",      AM_E|OT_b|P_r,               FLAGS_NONE|P_r,           FLAGS_NONE|P_r,1, EFL_CF|EFL_OF, 0, IOP_EAX, IOP_EAX },
	{ INSTRUCTION_TYPE_DIV,    "div",       AM_E|OT_b|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1, 0, 0, IOP_EAX, IOP_EAX },
	{ INSTRUCTION_TYPE_IDIV,   "idiv",      AM_E|OT_b|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1, 0, 0, IOP_EAX, IOP_EAX },
};
INST inst_table_ext3_2[8] = {
	{ INSTRUCTION_TYPE_TEST,   "test",      AM_E|OT_v|P_r,               AM_I|OT_v|P_r,             FLAGS_NONE,   1, EFL_OF|EFL_CF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_TEST,   "test",      AM_E|OT_v|P_r,               AM_I|OT_v|P_r,             FLAGS_NONE,   1, EFL_OF|EFL_CF|EFL_SF|EFL_ZF|EFL_PF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_NOT,    "not",       AM_E|OT_v|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
	{ INSTRUCTION_TYPE_NEG,    "neg",       AM_E|OT_v|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, EFL_CF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_MUL,    "mul",       AM_E|OT_v|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1, EFL_CF|EFL_OF, 0, IOP_EAX|IOP_EDX, IOP_EAX },
	{ INSTRUCTION_TYPE_IMUL,   "imul",      AM_E|OT_v|P_r,               FLAGS_NONE|P_r,           FLAGS_NONE|P_r,1, EFL_CF|EFL_OF, 0, IOP_EAX|IOP_EDX, IOP_EAX },
	{ INSTRUCTION_TYPE_DIV,    "div",       AM_E|OT_v|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1, 0, 0, IOP_EAX|IOP_EDX, IOP_EAX|IOP_EDX },
	{ INSTRUCTION_TYPE_IDIV,   "idiv",      AM_E|OT_v|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1, 0, 0, IOP_EAX|IOP_EDX, IOP_EAX|IOP_EDX },
};

INST inst_table_ext4[8] = {
	{ INSTRUCTION_TYPE_INC,    "inc",       AM_E|OT_b|P_r,               FLAGS_NONE,                FLAGS_NONE,   1, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_DEC,    "dec",       AM_E|OT_b,                   FLAGS_NONE,                FLAGS_NONE,   1, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
};

INST inst_table_ext5[8] = {
	{ INSTRUCTION_TYPE_INC,    "inc",       AM_E|OT_v|P_r,               FLAGS_NONE,                FLAGS_NONE,   1, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_DEC,    "dec",       AM_E|OT_v,                   FLAGS_NONE,                FLAGS_NONE,   1, EFL_OF|EFL_SF|EFL_ZF|EFL_AF|EFL_PF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_CALL,   "call",      AM_E|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, IOP_ESP, IOP_ESP },
	{ INSTRUCTION_TYPE_CALL,   "callf",     AM_E|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, IOP_ESP, IOP_ESP },
	{ INSTRUCTION_TYPE_JMP,    "jmp",       AM_E|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
	{ INSTRUCTION_TYPE_JMP,    "jmpf",      AM_E|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
	{ INSTRUCTION_TYPE_PUSH,   "push",      AM_E|OT_v|P_r,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, IOP_ESP, IOP_ESP },
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
};

INST inst_table_ext6[8] = {
        { INSTRUCTION_TYPE_SLDT,   "sldt",      AM_E|OT_w|P_r,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
        { INSTRUCTION_TYPE_PRIV,   "str",       AM_E|OT_w|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
        { INSTRUCTION_TYPE_PRIV,   "lldt",      AM_E|OT_w|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
        { INSTRUCTION_TYPE_PRIV,   "ltr",       AM_E|OT_w|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
        { INSTRUCTION_TYPE_PRIV,   "verr",      AM_E|OT_w|P_r,               FLAGS_NONE,                FLAGS_NONE,   1, EFL_ZF, 0, 0, 0 },
        { INSTRUCTION_TYPE_PRIV,   "verw",      AM_E|OT_w|P_r,               FLAGS_NONE,                FLAGS_NONE,   1, EFL_ZF, 0, 0, 0 },
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
};

INST inst_table_ext7[8] = {
        { INSTRUCTION_TYPE_SGDT,  "sgdt",       AM_M|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
        { INSTRUCTION_TYPE_SIDT,  "sidt",       AM_M|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
        { INSTRUCTION_TYPE_PRIV,  "lgdt",       AM_M|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
        { INSTRUCTION_TYPE_PRIV,  "lidt",       AM_M|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
        { INSTRUCTION_TYPE_PRIV,  "smsw",       AM_E|OT_w|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
        { INSTRUCTION_TYPE_PRIV,  "lmsw",       AM_E|OT_w|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, IOP_EAX, 0 },
        { INSTRUCTION_TYPE_PRIV,  "invlpg",     AM_M|OT_b|P_r,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
};
INST inst_monitor =
	{ INSTRUCTION_TYPE_OTHER,  "monitor",   FLAGS_NONE|P_w,              FLAGS_NONE|P_r,            FLAGS_NONE,   0, 0, 0, IOP_EAX|IOP_ECX|IOP_EDX, IOP_EAX|IOP_ECX|IOP_EDX };
INST inst_mwait =
	{ INSTRUCTION_TYPE_OTHER,  "mwait",     FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, IOP_EAX|IOP_ECX, IOP_EAX|IOP_ECX };

INST inst_table_ext8[8] = {
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
        { INSTRUCTION_TYPE_BT,     "bt",        AM_E|OT_v|P_r,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, EFL_CF, 0, 0, 0 },
        { INSTRUCTION_TYPE_BTS,    "bts",       AM_E|OT_v|P_r,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, EFL_CF, 0, 0, 0 },
        { INSTRUCTION_TYPE_BTR,    "btr",       AM_E|OT_v|P_r,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, EFL_CF, 0, 0, 0 },
        { INSTRUCTION_TYPE_BTC,    "btc",       AM_E|OT_v|P_r,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, EFL_CF, 0, 0, 0 },
};

INST inst_table_ext9[8] = {
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_SSE,   "cmpxch8b",   AM_M|OT_q,                   FLAGS_NONE,                FLAGS_NONE,   1, EFL_ALL_COMMON, 0, IOP_EAX|IOP_EDX, IOP_EAX|IOP_EBX|IOP_ECX|IOP_EDX }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
};

INST inst_table_ext10[8] = {
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
};

// XXX: not used yet
INST inst_table_ext11[8] = {
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
};

// XXX: intel manual says AM_P.. but that seems to produce wrong disasm
INST inst_table_ext12[8] = {
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
        { INSTRUCTION_TYPE_MMX,    "psrlw",     AM_Q|OT_q|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
        { INSTRUCTION_TYPE_MMX,    "psraw",     AM_Q|OT_q|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
        { INSTRUCTION_TYPE_MMX,    "psllw",     AM_Q|OT_q|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
};
// XXX: intel manual says AM_P.. but that seems to produce wrong disasm
INST inst_table_ext12_66[8] = {
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
        { INSTRUCTION_TYPE_SSE,    "psrlw",     AM_W|OT_dq|P_w,              AM_I|OT_b|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
        { INSTRUCTION_TYPE_SSE,    "psraw",     AM_W|OT_dq|P_w,              AM_I|OT_b|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
        { INSTRUCTION_TYPE_SSE,    "psllw",     AM_W|OT_dq|P_w,              AM_I|OT_b|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
};

// XXX: intel manual says AM_P.. but that seems to produce wrong disasm
INST inst_table_ext13[8] = {
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
        { INSTRUCTION_TYPE_MMX,    "psrld",     AM_Q|OT_q|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
        { INSTRUCTION_TYPE_MMX,    "psrad",     AM_Q|OT_q|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
        { INSTRUCTION_TYPE_MMX,    "pslld",     AM_Q|OT_q|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
};
// XXX: intel manual says AM_P.. but that seems to produce wrong disasm
INST inst_table_ext13_66[8] = {
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
        { INSTRUCTION_TYPE_SSE,    "psrld",     AM_W|OT_dq|P_w,              AM_I|OT_b|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
        { INSTRUCTION_TYPE_SSE,    "psrad",     AM_W|OT_dq|P_w,              AM_I|OT_b|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
        { INSTRUCTION_TYPE_SSE,    "pslld",     AM_W|OT_dq|P_w,              AM_I|OT_b|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
};

// XXX: intel manual says AM_P.. but that seems to produce wrong disasm
INST inst_table_ext14[8] = {
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
        { INSTRUCTION_TYPE_MMX,    "psrlq",     AM_Q|OT_q|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
        { INSTRUCTION_TYPE_MMX,    "psllq",     AM_Q|OT_q|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
};
// XXX: intel manual says AM_P.. but that seems to produce wrong disasm
INST inst_table_ext14_66[8] = {
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
        { INSTRUCTION_TYPE_SSE,    "psrlq",     AM_W|OT_dq|P_w,              AM_I|OT_b|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
        { INSTRUCTION_TYPE_SSE,    "psrldq",    AM_W|OT_dq|P_w,              AM_I|OT_b|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
        { INSTRUCTION_TYPE_SSE,    "psllq",     AM_W|OT_dq|P_w,              AM_I|OT_b|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
        { INSTRUCTION_TYPE_SSE,    "pslldq",    AM_W|OT_dq|P_w,              AM_I|OT_b|P_r,             FLAGS_NONE,   1, 0, 0, 0, 0 },
};

INST inst_table_ext15[8] = {
        { INSTRUCTION_TYPE_OTHER, "fxsave",     AM_E|OT_v,                   FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
        { INSTRUCTION_TYPE_OTHER, "fxrstor",    AM_E|OT_v,                   FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
        { INSTRUCTION_TYPE_OTHER, "ldmxcsr",    AM_E|OT_v,                   FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
        { INSTRUCTION_TYPE_OTHER, "stmxcsr",    AM_E|OT_v,                   FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
        { INSTRUCTION_TYPE_OTHER, "sfence",     AM_E|OT_v,                   FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
};

INST inst_table_ext16[8] = {
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
	{ INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
};

// Table of extension tables

INST * inst_table_ext[25] = {
	inst_table_ext1_1,
	inst_table_ext1_2,
	inst_table_ext1_3,
	inst_table_ext2_1,
	inst_table_ext2_2,
	inst_table_ext2_3,
	inst_table_ext2_4,
	inst_table_ext2_5,
	inst_table_ext2_6,
	inst_table_ext3_1,
	inst_table_ext3_2,
	inst_table_ext4,
	inst_table_ext5,
	inst_table_ext6,
	inst_table_ext7,
	inst_table_ext8,
	inst_table_ext9,
	inst_table_ext10,
	inst_table_ext11,
	inst_table_ext12,
	inst_table_ext13,
	inst_table_ext14,
	inst_table_ext15,
	inst_table_ext16,
};

// FPU instruction tables

/*
 * Tables are composed in two parts:
 *
 * - 1st part (index 0-7) are identified by the reg field of MODRM byte
 *   if the MODRM is < 0xc0. reg field can be used directly as an index to table.
 *
 * - 2nd part (8 - 0x47) are identified by the MODRM byte itself. In that case,
 *   the index can be calculated by "index = MODRM - 0xb8"
 *
 */
INST inst_table_fpu_d8[72] = {
/*D8 00*/{ INSTRUCTION_TYPE_FADD,   "fadds",     AM_E|OT_d|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*D8 08*/{ INSTRUCTION_TYPE_FMUL,   "fmuls",     AM_E|OT_d|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*D8 10*/{ INSTRUCTION_TYPE_FCOM,   "fcoms",     AM_E|OT_d|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*D8 18*/{ INSTRUCTION_TYPE_FCOMP,  "fcomps",    AM_E|OT_d|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*D8 20*/{ INSTRUCTION_TYPE_FSUB,   "fsubs",     AM_E|OT_d|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*D8 28*/{ INSTRUCTION_TYPE_FSUBR,  "fsubrs",    AM_E|OT_d|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*D8 30*/{ INSTRUCTION_TYPE_FDIV,   "fdivs",     AM_E|OT_d|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*D8 38*/{ INSTRUCTION_TYPE_FDIVR,  "fdivrs",    AM_E|OT_d|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*D8 00*/{ INSTRUCTION_TYPE_FADD,   "fadd",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 01*/{ INSTRUCTION_TYPE_FADD,   "fadd",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 02*/{ INSTRUCTION_TYPE_FADD,   "fadd",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 03*/{ INSTRUCTION_TYPE_FADD,   "fadd",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 04*/{ INSTRUCTION_TYPE_FADD,   "fadd",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 05*/{ INSTRUCTION_TYPE_FADD,   "fadd",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 06*/{ INSTRUCTION_TYPE_FADD,   "fadd",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 07*/{ INSTRUCTION_TYPE_FADD,   "fadd",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 08*/{ INSTRUCTION_TYPE_FMUL,   "fmul",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 09*/{ INSTRUCTION_TYPE_FMUL,   "fmul",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 0A*/{ INSTRUCTION_TYPE_FMUL,   "fmul",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 0B*/{ INSTRUCTION_TYPE_FMUL,   "fmul",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 0C*/{ INSTRUCTION_TYPE_FMUL,   "fmul",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 0D*/{ INSTRUCTION_TYPE_FMUL,   "fmul",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 0E*/{ INSTRUCTION_TYPE_FMUL,   "fmul",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 0F*/{ INSTRUCTION_TYPE_FMUL,   "fmul",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 10*/{ INSTRUCTION_TYPE_FCOM,   "fcom",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 11*/{ INSTRUCTION_TYPE_FCOM,   "fcom",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 12*/{ INSTRUCTION_TYPE_FCOM,   "fcom",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 13*/{ INSTRUCTION_TYPE_FCOM,   "fcom",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 14*/{ INSTRUCTION_TYPE_FCOM,   "fcom",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 15*/{ INSTRUCTION_TYPE_FCOM,   "fcom",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 16*/{ INSTRUCTION_TYPE_FCOM,   "fcom",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 17*/{ INSTRUCTION_TYPE_FCOM,   "fcom",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 18*/{ INSTRUCTION_TYPE_FCOMP,  "fcomp",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 19*/{ INSTRUCTION_TYPE_FCOMP,  "fcomp",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 1A*/{ INSTRUCTION_TYPE_FCOMP,  "fcomp",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 1B*/{ INSTRUCTION_TYPE_FCOMP,  "fcomp",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 1C*/{ INSTRUCTION_TYPE_FCOMP,  "fcomp",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 1D*/{ INSTRUCTION_TYPE_FCOMP,  "fcomp",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 1E*/{ INSTRUCTION_TYPE_FCOMP,  "fcomp",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 1F*/{ INSTRUCTION_TYPE_FCOMP,  "fcomp",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 20*/{ INSTRUCTION_TYPE_FSUB,   "fsub",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 21*/{ INSTRUCTION_TYPE_FSUB,   "fsub",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 22*/{ INSTRUCTION_TYPE_FSUB,   "fsub",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 23*/{ INSTRUCTION_TYPE_FSUB,   "fsub",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 24*/{ INSTRUCTION_TYPE_FSUB,   "fsub",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 25*/{ INSTRUCTION_TYPE_FSUB,   "fsub",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 26*/{ INSTRUCTION_TYPE_FSUB,   "fsub",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 27*/{ INSTRUCTION_TYPE_FSUB,   "fsub",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 28*/{ INSTRUCTION_TYPE_FSUBR,  "fsubr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 29*/{ INSTRUCTION_TYPE_FSUBR,  "fsubr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 2A*/{ INSTRUCTION_TYPE_FSUBR,  "fsubr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 2B*/{ INSTRUCTION_TYPE_FSUBR,  "fsubr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 2C*/{ INSTRUCTION_TYPE_FSUBR,  "fsubr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 2D*/{ INSTRUCTION_TYPE_FSUBR,  "fsubr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 2E*/{ INSTRUCTION_TYPE_FSUBR,  "fsubr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 2F*/{ INSTRUCTION_TYPE_FSUBR,  "fsubr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 30*/{ INSTRUCTION_TYPE_FDIV,   "fdiv",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 31*/{ INSTRUCTION_TYPE_FDIV,   "fdiv",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 32*/{ INSTRUCTION_TYPE_FDIV,   "fdiv",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 33*/{ INSTRUCTION_TYPE_FDIV,   "fdiv",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 34*/{ INSTRUCTION_TYPE_FDIV,   "fdiv",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 35*/{ INSTRUCTION_TYPE_FDIV,   "fdiv",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 36*/{ INSTRUCTION_TYPE_FDIV,   "fdiv",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 37*/{ INSTRUCTION_TYPE_FDIV,   "fdiv",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 38*/{ INSTRUCTION_TYPE_FDIVR,  "fdivr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 39*/{ INSTRUCTION_TYPE_FDIVR,  "fdivr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 3A*/{ INSTRUCTION_TYPE_FDIVR,  "fdivr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 3B*/{ INSTRUCTION_TYPE_FDIVR,  "fdivr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 3C*/{ INSTRUCTION_TYPE_FDIVR,  "fdivr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 3D*/{ INSTRUCTION_TYPE_FDIVR,  "fdivr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 3E*/{ INSTRUCTION_TYPE_FDIVR,  "fdivr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D8 3F*/{ INSTRUCTION_TYPE_FDIVR,  "fdivr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
};
INST inst_table_fpu_d9[72] = {
/*D9 00*/{ INSTRUCTION_TYPE_FLD,    "flds",      AM_E|OT_d,                   FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 }, 
/*D9 08*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 10*/{ INSTRUCTION_TYPE_FST,    "fst",       AM_E|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*D9 18*/{ INSTRUCTION_TYPE_FSTP,   "fstp",      AM_E|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
	// XXX: operand type is not correct
/*D9 20*/{ INSTRUCTION_TYPE_FPU_CTRL,"fldenv",    AM_E|OT_v|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*D9 28*/{ INSTRUCTION_TYPE_FPU_CTRL,"fldcw",     AM_E|OT_v|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*D9 30*/{ INSTRUCTION_TYPE_FPU_CTRL,"fstenv",    AM_E|OT_v|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*D9 38*/{ INSTRUCTION_TYPE_FPU_CTRL,"fstcw",     AM_E|OT_v|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*D9 00*/{ INSTRUCTION_TYPE_FLD,    "fld",       AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D9 01*/{ INSTRUCTION_TYPE_FLD,    "fld",       AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D9 02*/{ INSTRUCTION_TYPE_FLD,    "fld",       AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D9 03*/{ INSTRUCTION_TYPE_FLD,    "fld",       AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D9 04*/{ INSTRUCTION_TYPE_FLD,    "fld",       AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D9 05*/{ INSTRUCTION_TYPE_FLD,    "fld",       AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D9 06*/{ INSTRUCTION_TYPE_FLD,    "fld",       AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D9 07*/{ INSTRUCTION_TYPE_FLD,    "fld",       AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D9 08*/{ INSTRUCTION_TYPE_FXCH,   "fxch",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D9 09*/{ INSTRUCTION_TYPE_FXCH,   "fxch",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D9 0A*/{ INSTRUCTION_TYPE_FXCH,   "fxch",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D9 0B*/{ INSTRUCTION_TYPE_FXCH,   "fxch",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D9 0C*/{ INSTRUCTION_TYPE_FXCH,   "fxch",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D9 0D*/{ INSTRUCTION_TYPE_FXCH,   "fxch",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D9 0E*/{ INSTRUCTION_TYPE_FXCH,   "fxch",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D9 0F*/{ INSTRUCTION_TYPE_FXCH,   "fxch",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D9 10*/{ INSTRUCTION_TYPE_FPU,    "fnop",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 11*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 12*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 13*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 14*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 15*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 16*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 17*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 18*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 19*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 1A*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 1B*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 1C*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 1D*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 1E*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 1F*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 20*/{ INSTRUCTION_TYPE_FPU,    "fchs",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D9 21*/{ INSTRUCTION_TYPE_FPU,    "fabs",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D9 22*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 23*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 24*/{ INSTRUCTION_TYPE_FPU,    "ftst",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 25*/{ INSTRUCTION_TYPE_FPU,    "fxam",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 26*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 27*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 28*/{ INSTRUCTION_TYPE_FPU,    "fld1",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D9 29*/{ INSTRUCTION_TYPE_FPU,    "fldl2t",    FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 2A*/{ INSTRUCTION_TYPE_FPU,    "fldl2e",    FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 2B*/{ INSTRUCTION_TYPE_FPU,    "fldpi",     FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 2C*/{ INSTRUCTION_TYPE_FPU,    "fldlg2",    FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 2D*/{ INSTRUCTION_TYPE_FPU,    "fldln2",    FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 2E*/{ INSTRUCTION_TYPE_FPU,    "fldz",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 2F*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 30*/{ INSTRUCTION_TYPE_FPU,    "f2xm1",     FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D9 31*/{ INSTRUCTION_TYPE_FPU,    "fyl2x",     FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 32*/{ INSTRUCTION_TYPE_FPU,    "fptan",     FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 33*/{ INSTRUCTION_TYPE_FPU,    "fpatan",    FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 34*/{ INSTRUCTION_TYPE_FPU,    "fxtract",   FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 35*/{ INSTRUCTION_TYPE_FPU,    "fprem1",    FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 36*/{ INSTRUCTION_TYPE_FPU,    "fdecstp",   FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D9 37*/{ INSTRUCTION_TYPE_FPU,    "fincstp",   FLAGS_NONE|P_w,              FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D9 38*/{ INSTRUCTION_TYPE_FPU,    "fprem",     FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 39*/{ INSTRUCTION_TYPE_FPU,    "fyl2xp1",   FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 3A*/{ INSTRUCTION_TYPE_FPU,    "fsqrt",     FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 3B*/{ INSTRUCTION_TYPE_FPU,    "fsincos",   FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 3C*/{ INSTRUCTION_TYPE_FPU,    "frndint",   FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 3D*/{ INSTRUCTION_TYPE_FPU,    "fscale",    FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*D9 3E*/{ INSTRUCTION_TYPE_FPU,    "fsin",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*D9 3F*/{ INSTRUCTION_TYPE_FPU,    "fcos",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
};
INST inst_table_fpu_da[72] = {
/*DA 00*/{ INSTRUCTION_TYPE_FIADD,  "fiaddl",    AM_E|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DA 08*/{ INSTRUCTION_TYPE_FIMUL,  "fimull",    AM_E|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DA 10*/{ INSTRUCTION_TYPE_FICOM,  "ficoml",    AM_E|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DA 18*/{ INSTRUCTION_TYPE_FICOMP, "ficompl",   AM_E|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DA 20*/{ INSTRUCTION_TYPE_FISUB,  "fisubl",    AM_E|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DA 28*/{ INSTRUCTION_TYPE_FISUBR, "fisubrl",   AM_E|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DA 30*/{ INSTRUCTION_TYPE_FIDIV,  "fidivl",    AM_E|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DA 38*/{ INSTRUCTION_TYPE_FIDIVR, "fidivrl",   AM_E|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DA 00*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovb",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA 01*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovb",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA 02*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovb",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA 03*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovb",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA 04*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovb",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA 05*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovb",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA 06*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovb",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA 07*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovb",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA 08*/{ INSTRUCTION_TYPE_FCMOVC, "fcmove",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA 09*/{ INSTRUCTION_TYPE_FCMOVC, "fcmove",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA 0A*/{ INSTRUCTION_TYPE_FCMOVC, "fcmove",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA 0B*/{ INSTRUCTION_TYPE_FCMOVC, "fcmove",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA 0C*/{ INSTRUCTION_TYPE_FCMOVC, "fcmove",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA 0D*/{ INSTRUCTION_TYPE_FCMOVC, "fcmove",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA 0E*/{ INSTRUCTION_TYPE_FCMOVC, "fcmove",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA 0F*/{ INSTRUCTION_TYPE_FCMOVC, "fcmove",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA 10*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovbe",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA 11*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovbe",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA 12*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovbe",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA 13*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovbe",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA 14*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovbe",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA 15*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovbe",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA 16*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovbe",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA 17*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovbe",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA 18*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovu",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA 19*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovu",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA 1A*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovu",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA 1B*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovu",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA 1C*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovu",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA 1D*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovu",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA 1E*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovu",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA 1F*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovu",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA 20*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DA 21*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DA 22*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DA 23*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DA 24*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DA 25*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DA 26*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DA 27*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DA 28*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DA 29*/{ INSTRUCTION_TYPE_FUCOMP, "fucompp",   FLAGS_NONE|P_w,              FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DA 2A*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DA 2B*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DA 2C*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DA 2D*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DA 2E*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DA 2F*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DA 30*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DA 31*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DA 32*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DA 33*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DA 34*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DA 35*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DA 36*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DA 37*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DA 38*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DA 39*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DA 3A*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DA 3B*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DA 3C*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DA 3D*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DA 3E*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DA 3F*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
};

// XXX: fsetpm??
INST inst_table_fpu_db[72] = {
/*DB 00*/{ INSTRUCTION_TYPE_FILD,   "fildl",     AM_E|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DB 08*/{ INSTRUCTION_TYPE_FISTTP, "fisttp",    AM_E|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DB 10*/{ INSTRUCTION_TYPE_FIST,   "fistl",     AM_E|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DB 18*/{ INSTRUCTION_TYPE_FISTP,  "fistp",     AM_E|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DB 20*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DB 28*/{ INSTRUCTION_TYPE_FLD,    "fldt",      AM_E|OT_t,                   FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 }, 
/*DB 30*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DB 38*/{ INSTRUCTION_TYPE_FSTP,   "fstpl",     AM_E|OT_t|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DB 00*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovnb",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 01*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovnb",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 02*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovnb",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 03*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovnb",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 04*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovnb",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 05*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovnb",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 06*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovnb",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 07*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovnb",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 08*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovne",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 09*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovne",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 0A*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovne",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 0B*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovne",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 0C*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovne",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 0D*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovne",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 0E*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovne",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 0F*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovne",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 10*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovnbe",  AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 11*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovnbe",  AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 12*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovnbe",  AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 13*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovnbe",  AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 14*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovnbe",  AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 15*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovnbe",  AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 16*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovnbe",  AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 17*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovnbe",  AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 18*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovnu",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 19*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovnu",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 1A*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovnu",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 1B*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovnu",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 1C*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovnu",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 1D*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovnu",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 1E*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovnu",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 1F*/{ INSTRUCTION_TYPE_FCMOVC, "fcmovnu",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 20*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DB 21*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DB 22*/{ INSTRUCTION_TYPE_FPU_CTRL,"fclex",     FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 23*/{ INSTRUCTION_TYPE_FPU_CTRL,"finit",     FLAGS_NONE|P_w,              FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 24*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DB 25*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DB 26*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DB 27*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DB 28*/{ INSTRUCTION_TYPE_FUCOMI, "fucomi",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 29*/{ INSTRUCTION_TYPE_FUCOMI, "fucomi",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 2A*/{ INSTRUCTION_TYPE_FUCOMI, "fucomi",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 2B*/{ INSTRUCTION_TYPE_FUCOMI, "fucomi",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 2C*/{ INSTRUCTION_TYPE_FUCOMI, "fucomi",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 2D*/{ INSTRUCTION_TYPE_FUCOMI, "fucomi",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 2E*/{ INSTRUCTION_TYPE_FUCOMI, "fucomi",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 2F*/{ INSTRUCTION_TYPE_FUCOMI, "fucomi",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 30*/{ INSTRUCTION_TYPE_FCOMI,  "fcomi",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 31*/{ INSTRUCTION_TYPE_FCOMI,  "fcomi",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 32*/{ INSTRUCTION_TYPE_FCOMI,  "fcomi",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 33*/{ INSTRUCTION_TYPE_FCOMI,  "fcomi",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 34*/{ INSTRUCTION_TYPE_FCOMI,  "fcomi",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 35*/{ INSTRUCTION_TYPE_FCOMI,  "fcomi",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 36*/{ INSTRUCTION_TYPE_FCOMI,  "fcomi",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 37*/{ INSTRUCTION_TYPE_FCOMI,  "fcomi",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DB 38*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DB 39*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DB 3A*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DB 3B*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DB 3C*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DB 3D*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DB 3E*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DB 3F*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
};
INST inst_table_fpu_dc[72] = {
/*DC 00*/{ INSTRUCTION_TYPE_FADD,   "faddl",     AM_E|OT_q|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DC 08*/{ INSTRUCTION_TYPE_FMUL,   "fmull",     AM_E|OT_q|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DC 10*/{ INSTRUCTION_TYPE_FCOM,   "fcoml",     AM_E|OT_q|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DC 18*/{ INSTRUCTION_TYPE_FCOMP,  "fcompl",    AM_E|OT_q|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DC 20*/{ INSTRUCTION_TYPE_FSUB,   "fsubl",     AM_E|OT_q|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DC 28*/{ INSTRUCTION_TYPE_FSUBR,  "fsubrl",    AM_E|OT_q|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DC 30*/{ INSTRUCTION_TYPE_FDIV,   "fdivl",     AM_E|OT_q|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DC 38*/{ INSTRUCTION_TYPE_FDIVR,  "fdivrl",    AM_E|OT_q|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DC 00*/{ INSTRUCTION_TYPE_FADD,   "fadd",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 01*/{ INSTRUCTION_TYPE_FADD,   "fadd",      AM_REG|REG_ST1|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 02*/{ INSTRUCTION_TYPE_FADD,   "fadd",      AM_REG|REG_ST2|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 03*/{ INSTRUCTION_TYPE_FADD,   "fadd",      AM_REG|REG_ST3|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 04*/{ INSTRUCTION_TYPE_FADD,   "fadd",      AM_REG|REG_ST4|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 05*/{ INSTRUCTION_TYPE_FADD,   "fadd",      AM_REG|REG_ST5|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 06*/{ INSTRUCTION_TYPE_FADD,   "fadd",      AM_REG|REG_ST6|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 07*/{ INSTRUCTION_TYPE_FADD,   "fadd",      AM_REG|REG_ST7|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 08*/{ INSTRUCTION_TYPE_FMUL,   "fmul",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 09*/{ INSTRUCTION_TYPE_FMUL,   "fmul",      AM_REG|REG_ST1|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 0A*/{ INSTRUCTION_TYPE_FMUL,   "fmul",      AM_REG|REG_ST2|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 0B*/{ INSTRUCTION_TYPE_FMUL,   "fmul",      AM_REG|REG_ST3|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 0C*/{ INSTRUCTION_TYPE_FMUL,   "fmul",      AM_REG|REG_ST4|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 0D*/{ INSTRUCTION_TYPE_FMUL,   "fmul",      AM_REG|REG_ST5|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 0E*/{ INSTRUCTION_TYPE_FMUL,   "fmul",      AM_REG|REG_ST6|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 0F*/{ INSTRUCTION_TYPE_FMUL,   "fmul",      AM_REG|REG_ST7|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 10*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DC 11*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DC 12*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DC 13*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DC 14*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DC 15*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DC 16*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DC 17*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DC 18*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DC 19*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DC 1A*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DC 1B*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DC 1C*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DC 1D*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DC 1E*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DC 1F*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DC 20*/{ INSTRUCTION_TYPE_FSUBR,  "fsubr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 21*/{ INSTRUCTION_TYPE_FSUBR,  "fsubr",     AM_REG|REG_ST1|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 22*/{ INSTRUCTION_TYPE_FSUBR,  "fsubr",     AM_REG|REG_ST2|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 23*/{ INSTRUCTION_TYPE_FSUBR,  "fsubr",     AM_REG|REG_ST3|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 24*/{ INSTRUCTION_TYPE_FSUBR,  "fsubr",     AM_REG|REG_ST4|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 25*/{ INSTRUCTION_TYPE_FSUBR,  "fsubr",     AM_REG|REG_ST5|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 26*/{ INSTRUCTION_TYPE_FSUBR,  "fsubr",     AM_REG|REG_ST6|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 27*/{ INSTRUCTION_TYPE_FSUBR,  "fsubr",     AM_REG|REG_ST7|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 28*/{ INSTRUCTION_TYPE_FSUB,   "fsub",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 29*/{ INSTRUCTION_TYPE_FSUB,   "fsub",      AM_REG|REG_ST1|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 2A*/{ INSTRUCTION_TYPE_FSUB,   "fsub",      AM_REG|REG_ST2|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 2B*/{ INSTRUCTION_TYPE_FSUB,   "fsub",      AM_REG|REG_ST3|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 2C*/{ INSTRUCTION_TYPE_FSUB,   "fsub",      AM_REG|REG_ST4|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 2D*/{ INSTRUCTION_TYPE_FSUB,   "fsub",      AM_REG|REG_ST5|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 2E*/{ INSTRUCTION_TYPE_FSUB,   "fsub",      AM_REG|REG_ST6|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 2F*/{ INSTRUCTION_TYPE_FSUB,   "fsub",      AM_REG|REG_ST7|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 30*/{ INSTRUCTION_TYPE_FDIVR,  "fdivr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 31*/{ INSTRUCTION_TYPE_FDIVR,  "fdivr",     AM_REG|REG_ST1|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 32*/{ INSTRUCTION_TYPE_FDIVR,  "fdivr",     AM_REG|REG_ST2|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 33*/{ INSTRUCTION_TYPE_FDIVR,  "fdivr",     AM_REG|REG_ST3|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 34*/{ INSTRUCTION_TYPE_FDIVR,  "fdivr",     AM_REG|REG_ST4|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 35*/{ INSTRUCTION_TYPE_FDIVR,  "fdivr",     AM_REG|REG_ST5|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 36*/{ INSTRUCTION_TYPE_FDIVR,  "fdivr",     AM_REG|REG_ST6|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 37*/{ INSTRUCTION_TYPE_FDIVR,  "fdivr",     AM_REG|REG_ST7|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 38*/{ INSTRUCTION_TYPE_FDIV,   "fdiv",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 39*/{ INSTRUCTION_TYPE_FDIV,   "fdiv",      AM_REG|REG_ST1|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 3A*/{ INSTRUCTION_TYPE_FDIV,   "fdiv",      AM_REG|REG_ST2|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 3B*/{ INSTRUCTION_TYPE_FDIV,   "fdiv",      AM_REG|REG_ST3|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 3C*/{ INSTRUCTION_TYPE_FDIV,   "fdiv",      AM_REG|REG_ST4|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 3D*/{ INSTRUCTION_TYPE_FDIV,   "fdiv",      AM_REG|REG_ST5|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 3E*/{ INSTRUCTION_TYPE_FDIV,   "fdiv",      AM_REG|REG_ST6|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DC 3F*/{ INSTRUCTION_TYPE_FDIV,   "fdiv",      AM_REG|REG_ST7|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
};
INST inst_table_fpu_dd[72] = {
/*DD 00*/{ INSTRUCTION_TYPE_FLD,    "fldl",      AM_E|OT_q,                   FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DD 08*/{ INSTRUCTION_TYPE_FISTTP, "fisttp",    AM_E|OT_q|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DD 10*/{ INSTRUCTION_TYPE_FST,    "fstl",      AM_E|OT_q|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DD 18*/{ INSTRUCTION_TYPE_FSTP,   "fstpl",     AM_E|OT_q|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
// XXX: operand type is not exactly right..
/*DD 20*/{ INSTRUCTION_TYPE_FPU_CTRL,"frstor",    AM_E|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DD 28*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
// XXX: operand type is not exactly right..
/*DD 30*/{ INSTRUCTION_TYPE_FPU_CTRL,"fsave",     AM_E|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
// XXX: operand type is not exactly right..
/*DD 38*/{ INSTRUCTION_TYPE_FPU_CTRL,"fstsw",     AM_E|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DD 00*/{ INSTRUCTION_TYPE_FFREE,  "ffree",     AM_REG|REG_ST0|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 01*/{ INSTRUCTION_TYPE_FFREE,  "ffree",     AM_REG|REG_ST1|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 02*/{ INSTRUCTION_TYPE_FFREE,  "ffree",     AM_REG|REG_ST2|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 03*/{ INSTRUCTION_TYPE_FFREE,  "ffree",     AM_REG|REG_ST3|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 04*/{ INSTRUCTION_TYPE_FFREE,  "ffree",     AM_REG|REG_ST4|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 05*/{ INSTRUCTION_TYPE_FFREE,  "ffree",     AM_REG|REG_ST5|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 06*/{ INSTRUCTION_TYPE_FFREE,  "ffree",     AM_REG|REG_ST6|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 07*/{ INSTRUCTION_TYPE_FFREE,  "ffree",     AM_REG|REG_ST7|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 08*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DD 09*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DD 0A*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DD 0B*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DD 0C*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DD 0D*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DD 0E*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DD 0F*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DD 10*/{ INSTRUCTION_TYPE_FST,    "fst",       AM_REG|REG_ST0|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 11*/{ INSTRUCTION_TYPE_FST,    "fst",       AM_REG|REG_ST1|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 12*/{ INSTRUCTION_TYPE_FST,    "fst",       AM_REG|REG_ST2|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 13*/{ INSTRUCTION_TYPE_FST,    "fst",       AM_REG|REG_ST3|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 14*/{ INSTRUCTION_TYPE_FST,    "fst",       AM_REG|REG_ST4|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 15*/{ INSTRUCTION_TYPE_FST,    "fst",       AM_REG|REG_ST5|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 16*/{ INSTRUCTION_TYPE_FST,    "fst",       AM_REG|REG_ST6|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 17*/{ INSTRUCTION_TYPE_FST,    "fst",       AM_REG|REG_ST7|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 18*/{ INSTRUCTION_TYPE_FSTP,   "fstp",      AM_REG|REG_ST0|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 19*/{ INSTRUCTION_TYPE_FSTP,   "fstp",      AM_REG|REG_ST1|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 1A*/{ INSTRUCTION_TYPE_FSTP,   "fstp",      AM_REG|REG_ST2|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 1B*/{ INSTRUCTION_TYPE_FSTP,   "fstp",      AM_REG|REG_ST3|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 1C*/{ INSTRUCTION_TYPE_FSTP,   "fstp",      AM_REG|REG_ST4|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 1D*/{ INSTRUCTION_TYPE_FSTP,   "fstp",      AM_REG|REG_ST5|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 1E*/{ INSTRUCTION_TYPE_FSTP,   "fstp",      AM_REG|REG_ST6|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 1F*/{ INSTRUCTION_TYPE_FSTP,   "fstp",      AM_REG|REG_ST7|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 20*/{ INSTRUCTION_TYPE_FUCOM,  "fucom",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 21*/{ INSTRUCTION_TYPE_FUCOM,  "fucom",     AM_REG|REG_ST1|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 22*/{ INSTRUCTION_TYPE_FUCOM,  "fucom",     AM_REG|REG_ST2|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 23*/{ INSTRUCTION_TYPE_FUCOM,  "fucom",     AM_REG|REG_ST3|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 24*/{ INSTRUCTION_TYPE_FUCOM,  "fucom",     AM_REG|REG_ST4|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 25*/{ INSTRUCTION_TYPE_FUCOM,  "fucom",     AM_REG|REG_ST5|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 26*/{ INSTRUCTION_TYPE_FUCOM,  "fucom",     AM_REG|REG_ST6|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 27*/{ INSTRUCTION_TYPE_FUCOM,  "fucom",     AM_REG|REG_ST7|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 28*/{ INSTRUCTION_TYPE_FUCOMP, "fucomp",    AM_REG|REG_ST0|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 29*/{ INSTRUCTION_TYPE_FUCOMP, "fucomp",    AM_REG|REG_ST1|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 2A*/{ INSTRUCTION_TYPE_FUCOMP, "fucomp",    AM_REG|REG_ST2|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 2B*/{ INSTRUCTION_TYPE_FUCOMP, "fucomp",    AM_REG|REG_ST3|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 2C*/{ INSTRUCTION_TYPE_FUCOMP, "fucomp",    AM_REG|REG_ST4|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 2D*/{ INSTRUCTION_TYPE_FUCOMP, "fucomp",    AM_REG|REG_ST5|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 2E*/{ INSTRUCTION_TYPE_FUCOMP, "fucomp",    AM_REG|REG_ST6|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 2F*/{ INSTRUCTION_TYPE_FUCOMP, "fucomp",    AM_REG|REG_ST7|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DD 30*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DD 31*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DD 32*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DD 33*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DD 34*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DD 35*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DD 36*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DD 37*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DD 38*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DD 39*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DD 3A*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DD 3B*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DD 3C*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DD 3D*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DD 3E*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DD 3F*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
};
INST inst_table_fpu_de[72] = {
/*DE 00*/{ INSTRUCTION_TYPE_FIADD,  "fiadd",     AM_E|OT_w|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DE 08*/{ INSTRUCTION_TYPE_FIMUL,  "fimul",     AM_E|OT_w|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DE 10*/{ INSTRUCTION_TYPE_FICOM,  "ficom",     AM_E|OT_w|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DE 18*/{ INSTRUCTION_TYPE_FICOMP, "ficomp",    AM_E|OT_w|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DE 20*/{ INSTRUCTION_TYPE_FISUB,  "fisub",     AM_E|OT_w|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DE 28*/{ INSTRUCTION_TYPE_FISUBR, "fisubr",    AM_E|OT_w|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DE 30*/{ INSTRUCTION_TYPE_FIDIV,  "fidiv",     AM_E|OT_w|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DE 38*/{ INSTRUCTION_TYPE_FIDIVR, "fidivr",    AM_E|OT_w|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DE 00*/{ INSTRUCTION_TYPE_FADDP,  "faddp",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 01*/{ INSTRUCTION_TYPE_FADDP,  "faddp",     AM_REG|REG_ST1|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 02*/{ INSTRUCTION_TYPE_FADDP,  "faddp",     AM_REG|REG_ST2|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 03*/{ INSTRUCTION_TYPE_FADDP,  "faddp",     AM_REG|REG_ST3|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 04*/{ INSTRUCTION_TYPE_FADDP,  "faddp",     AM_REG|REG_ST4|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 05*/{ INSTRUCTION_TYPE_FADDP,  "faddp",     AM_REG|REG_ST5|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 06*/{ INSTRUCTION_TYPE_FADDP,  "faddp",     AM_REG|REG_ST6|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 07*/{ INSTRUCTION_TYPE_FADDP,  "faddp",     AM_REG|REG_ST7|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 08*/{ INSTRUCTION_TYPE_FMULP,  "fmulp",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 09*/{ INSTRUCTION_TYPE_FMULP,  "fmulp",     AM_REG|REG_ST1|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 0A*/{ INSTRUCTION_TYPE_FMULP,  "fmulp",     AM_REG|REG_ST2|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 0B*/{ INSTRUCTION_TYPE_FMULP,  "fmulp",     AM_REG|REG_ST3|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 0C*/{ INSTRUCTION_TYPE_FMULP,  "fmulp",     AM_REG|REG_ST4|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 0D*/{ INSTRUCTION_TYPE_FMULP,  "fmulp",     AM_REG|REG_ST5|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 0E*/{ INSTRUCTION_TYPE_FMULP,  "fmulp",     AM_REG|REG_ST6|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 0F*/{ INSTRUCTION_TYPE_FMULP,  "fmulp",     AM_REG|REG_ST7|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 10*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DE 11*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DE 12*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DE 13*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DE 14*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DE 15*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DE 16*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DE 17*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DE 18*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DE 19*/{ INSTRUCTION_TYPE_FCOMPP, "fcompp",    FLAGS_NONE|P_w,              FLAGS_NONE|P_r,            FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 1A*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DE 1B*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DE 1C*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DE 1D*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DE 1E*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DE 1F*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DE 20*/{ INSTRUCTION_TYPE_FSUBRP, "fsubrp",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 21*/{ INSTRUCTION_TYPE_FSUBRP, "fsubrp",    AM_REG|REG_ST1|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 22*/{ INSTRUCTION_TYPE_FSUBRP, "fsubrp",    AM_REG|REG_ST2|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 23*/{ INSTRUCTION_TYPE_FSUBRP, "fsubrp",    AM_REG|REG_ST3|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 24*/{ INSTRUCTION_TYPE_FSUBRP, "fsubrp",    AM_REG|REG_ST4|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 25*/{ INSTRUCTION_TYPE_FSUBRP, "fsubrp",    AM_REG|REG_ST5|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 26*/{ INSTRUCTION_TYPE_FSUBRP, "fsubrp",    AM_REG|REG_ST6|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 27*/{ INSTRUCTION_TYPE_FSUBRP, "fsubrp",    AM_REG|REG_ST7|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 28*/{ INSTRUCTION_TYPE_FSUBP,  "fsubp",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 29*/{ INSTRUCTION_TYPE_FSUBP,  "fsubp",     AM_REG|REG_ST1|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 2A*/{ INSTRUCTION_TYPE_FSUBP,  "fsubp",     AM_REG|REG_ST2|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 2B*/{ INSTRUCTION_TYPE_FSUBP,  "fsubp",     AM_REG|REG_ST3|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 2C*/{ INSTRUCTION_TYPE_FSUBP,  "fsubp",     AM_REG|REG_ST4|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 2D*/{ INSTRUCTION_TYPE_FSUBP,  "fsubp",     AM_REG|REG_ST5|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 2E*/{ INSTRUCTION_TYPE_FSUBP,  "fsubp",     AM_REG|REG_ST6|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 2F*/{ INSTRUCTION_TYPE_FSUBP,  "fsubp",     AM_REG|REG_ST7|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 30*/{ INSTRUCTION_TYPE_FDIVRP, "fdivrp",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 31*/{ INSTRUCTION_TYPE_FDIVRP, "fdivrp",    AM_REG|REG_ST1|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 32*/{ INSTRUCTION_TYPE_FDIVRP, "fdivrp",    AM_REG|REG_ST2|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 33*/{ INSTRUCTION_TYPE_FDIVRP, "fdivrp",    AM_REG|REG_ST3|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 34*/{ INSTRUCTION_TYPE_FDIVRP, "fdivrp",    AM_REG|REG_ST4|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 35*/{ INSTRUCTION_TYPE_FDIVRP, "fdivrp",    AM_REG|REG_ST5|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 36*/{ INSTRUCTION_TYPE_FDIVRP, "fdivrp",    AM_REG|REG_ST6|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 37*/{ INSTRUCTION_TYPE_FDIVRP, "fdivrp",    AM_REG|REG_ST7|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 38*/{ INSTRUCTION_TYPE_FDIVP,  "fdivp",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 39*/{ INSTRUCTION_TYPE_FDIVP,  "fdivp",     AM_REG|REG_ST1|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 3A*/{ INSTRUCTION_TYPE_FDIVP,  "fdivp",     AM_REG|REG_ST2|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 3B*/{ INSTRUCTION_TYPE_FDIVP,  "fdivp",     AM_REG|REG_ST3|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 3C*/{ INSTRUCTION_TYPE_FDIVP,  "fdivp",     AM_REG|REG_ST4|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 3D*/{ INSTRUCTION_TYPE_FDIVP,  "fdivp",     AM_REG|REG_ST5|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 3E*/{ INSTRUCTION_TYPE_FDIVP,  "fdivp",     AM_REG|REG_ST6|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DE 3F*/{ INSTRUCTION_TYPE_FDIVP,  "fdivp",     AM_REG|REG_ST7|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
};

INST inst_table_fpu_df[72] = {
/*DF 00*/{ INSTRUCTION_TYPE_FILD,   "fild",      AM_E|OT_w|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
	// fisttp: IA-32 2004
/*DF 08*/{ INSTRUCTION_TYPE_FISTTP, "fisttp",    AM_E|OT_w|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DF 10*/{ INSTRUCTION_TYPE_FIST,   "fist",      AM_E|OT_w|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DF 18*/{ INSTRUCTION_TYPE_FISTP,  "fistp",     AM_E|OT_w|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DF 20*/{ INSTRUCTION_TYPE_FPU,    "fbld",      AM_E|OT_t|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DF 28*/{ INSTRUCTION_TYPE_FILD,   "fild",      AM_E|OT_t|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DF 30*/{ INSTRUCTION_TYPE_FPU,    "fbstp",     AM_E|OT_t|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
/*DF 38*/{ INSTRUCTION_TYPE_FISTP,  "fistp",     AM_E|OT_t|P_w,               FLAGS_NONE,                FLAGS_NONE,   1, 0, 0, 0, 0 },
// ffreep undocumented!!
/*DF 00*/{ INSTRUCTION_TYPE_FFREEP, "ffreep",    AM_REG|REG_ST0|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DF 01*/{ INSTRUCTION_TYPE_FFREEP, "ffreep",    AM_REG|REG_ST1|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DF 02*/{ INSTRUCTION_TYPE_FFREEP, "ffreep",    AM_REG|REG_ST2|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DF 03*/{ INSTRUCTION_TYPE_FFREEP, "ffreep",    AM_REG|REG_ST3|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DF 04*/{ INSTRUCTION_TYPE_FFREEP, "ffreep",    AM_REG|REG_ST4|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DF 05*/{ INSTRUCTION_TYPE_FFREEP, "ffreep",    AM_REG|REG_ST5|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DF 06*/{ INSTRUCTION_TYPE_FFREEP, "ffreep",    AM_REG|REG_ST6|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DF 07*/{ INSTRUCTION_TYPE_FFREEP, "ffreep",    AM_REG|REG_ST7|F_f|P_w,      FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DF 08*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 09*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 0A*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 0B*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 0C*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 0D*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 0E*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 0F*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 10*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 11*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 12*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 13*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 14*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 15*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 16*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 17*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 18*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 19*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 1A*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 1B*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 1C*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 1D*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 1E*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 1F*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 20*/{ INSTRUCTION_TYPE_FPU,    "fstsw",     FLAGS_NONE|P_w,              FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DF 21*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 22*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 23*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 24*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 25*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 26*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 27*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 28*/{ INSTRUCTION_TYPE_FUCOMIP,"fucomip",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DF 29*/{ INSTRUCTION_TYPE_FUCOMIP,"fucomip",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DF 2A*/{ INSTRUCTION_TYPE_FUCOMIP,"fucomip",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DF 2B*/{ INSTRUCTION_TYPE_FUCOMIP,"fucomip",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DF 2C*/{ INSTRUCTION_TYPE_FUCOMIP,"fucomip",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DF 2D*/{ INSTRUCTION_TYPE_FUCOMIP,"fucomip",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DF 2E*/{ INSTRUCTION_TYPE_FUCOMIP,"fucomip",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DF 2F*/{ INSTRUCTION_TYPE_FUCOMIP,"fucomip",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DF 30*/{ INSTRUCTION_TYPE_FCOMIP, "fcomip",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DF 31*/{ INSTRUCTION_TYPE_FCOMIP, "fcomip",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DF 32*/{ INSTRUCTION_TYPE_FCOMIP, "fcomip",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DF 33*/{ INSTRUCTION_TYPE_FCOMIP, "fcomip",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DF 34*/{ INSTRUCTION_TYPE_FCOMIP, "fcomip",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DF 35*/{ INSTRUCTION_TYPE_FCOMIP, "fcomip",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DF 36*/{ INSTRUCTION_TYPE_FCOMIP, "fcomip",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DF 37*/{ INSTRUCTION_TYPE_FCOMIP, "fcomip",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0, 0, 0, 0, 0 },
/*DF 38*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 39*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 3A*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 3B*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 3C*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 3D*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 3E*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
/*DF 3F*/{ INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0, 0, 0, 0, 0 }, 
};

// Table of FPU instruction tables

/*
 * These tables are accessed by the following way:
 *
 * INST *fpuinst = inst_table4[opcode - 0xd8][index];
 * where index is determined by the MODRM byte.
 *
 */
INST * inst_table4[8] = {
	inst_table_fpu_d8,
	inst_table_fpu_d9,
	inst_table_fpu_da,
	inst_table_fpu_db,
	inst_table_fpu_dc,
	inst_table_fpu_dd,
	inst_table_fpu_de,
	inst_table_fpu_df,
};



